日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux Socket网络通信示例

發布時間:2023/12/10 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux Socket网络通信示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

記錄一下Linux 網絡通信編程示例,主要用內網穿透和網絡調試助手進行調試。

1、源文件:

#include <stdlib.h> #include <sys/types.h> #include <stdio.h> #include <netinet/in.h> #incldue <string.h> //bzero #include <arpa/inet.h> //inet_addr#define MSG printfint main() {int recbytes;int sin_size;char buffer[1024] = {0};struct sockaddr_in s_add,c_add;MSG("INFO: socket thread...\r\n");sock_id = socket(AF_INET,SOCK_STREAM,0);if(-1 == sock_id){MSG("INFO: socket fail !\r\n");return -1;}MSG("INFO: socket success !\r\n");bzero(&s_add,sizeof(struct sockaddr_in));s_add.sin_family = AF_INET;s_add.sin_addr.s_addr = inet_addr("94.191.70.63");//上述IP地址是我的服務器IP,可以用花生殼,NAT123等內網穿透軟件s_add.sin_port = htons(18677);//設置的服務器端口//connect to serv with block modeif(-1 == connect(sock_id,(struct sockaddr*)(&s_add),sizeof(struct sockaddr))){MSG("INFO: connect to serv fail !\r\n");return -1;}MSG("INFO: connect to serv success \r\n");while (1) {if(-1 != (recbytes = read(sock_id,buffer,1024))){buffer[recbytes] = '\0';MSG("INFO:Rx serv data:%s\r\n",buffer);memset(buffer,0,1024);}if(fgets( buffer, 1024, stdin ) != NULL){write( sock_id, buffer, strlen(buffer));}} }

2、編譯運行

gcc socket_linux.c -o main

服務器接收和發送:

linux發送和接收:

3、內網穿透是怎么一回事?

linux編寫的socket網絡通信程序需要訪問IP和端口,這個IP和端口一定是公網、外網,不是局域網的192.168.1.X這種,因此在調試網絡通信代碼,測試數據發送時需要有公網IP作為服務器,接收我們程序發起的連接。

簡單來說有兩種方式構建服務器,1:購買阿里云、騰訊云、華為云等服務器,自己開服務,開端口和防火墻設置,并運行相應服務器代碼,接收開發的socket連接并執行相應響應。2:內網穿透,不用搭建服務器,自己電腦安裝一個內網穿透軟件,由該軟件提供一個外部公網IP,然后自己電腦再創建一個服務器,用普通的網絡調試軟件即可。

內網穿透怎么配置:首先在電腦打開網絡調試助手,創建一個服務器,設置服務器端口為PORT1;接著打開內網穿透軟件,創建一個公網服務(具有公網網址和公網端口PORT2),并綁定電腦的IP地址(用ADDR1表示,可以上網的地址)和PORT1端口;然后將內網穿透軟件的外網服務網址找出來,轉換成IP地址(用ADDR2表示);最后在程序中用ADDR2和PORT2這個IP和端口來對接,所有收發數據都可以傳輸到電腦的網絡調試助手中。

?

?

?

總結

以上是生活随笔為你收集整理的Linux Socket网络通信示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。