C 建立本地UDP通訊

2021-10-03 20:21:02 字數 2302 閱讀 3309

1. 

2.首先需要在vs配置上述,不然會報錯。

client**:

#include #include #include#include void main()

if (lobyte(wsadata.wversion) != 1 || //低位元組為主版本

hibyte(wsadata.wversion) != 1) //高位元組為副版本

printf("client is operating!\n\n");

//建立用於監聽的套接字

socket socksrv = socket(af_inet, sock_dgram, 0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");//輸入你想通訊的她(此處是本機內部)

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(6000);

int len = sizeof(sockaddr);

char recvbuf[100]; //收

char sendbuf[100]; //發

char tempbuf[100]; //儲存中間資訊資料

while (1)

sprintf_s(tempbuf, "%s say : %s", inet_ntoa(addrsrv.sin_addr), recvbuf);

printf("%s\n", tempbuf);

//傳送資料

} closesocket(socksrv);

wsacleanup();

}

server**:

#define _scl_secure_no_warnings

#include #include #include#include void main()

if (lobyte(wsadata.wversion) != 1 || //低位元組為主版本

hibyte(wsadata.wversion) != 1) //高位元組為副版本

printf("server is operating!\n\n");

//建立用於監聽的套接字

socket socksrv = socket(af_inet, sock_dgram, 0);//失敗會返回 invalid_socket

//printf("failed. error code : %d",wsagetlasterror())//顯示錯誤資訊

sockaddr_in addrsrv; //定義socksrv傳送和接收資料報的位址

addrsrv.sin_addr.s_un.s_addr = htonl(inaddr_any);

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(6000);

//繫結套接字, 繫結到埠

bind(socksrv, (sockaddr*)&addrsrv, sizeof(sockaddr));//會返回乙個socket_error

//將套接字設為監聽模式, 準備接收客戶請求

sockaddr_in addrclient; //用來接收客戶端的位址資訊

int len = sizeof(sockaddr);

char recvbuf[100]; //收

char sendbuf[100]; //發

char tempbuf[100]; //儲存中間資訊資料

while (1)

sprintf_s(tempbuf, "%s say : %s", inet_ntoa(addrclient.sin_addr), recvbuf);

printf("%s\n", tempbuf);

//傳送資料

printf("please input data: \n");

gets_s(sendbuf);

sendto(socksrv, sendbuf, strlen(sendbuf) + 1, 0, (sockaddr*)&addrclient, len);

} closesocket(socksrv);

wsacleanup();

}

最後server與client之間就可以通化了

C 實現UDP通訊

using system using system.text using system.net using system.net.sockets namespace udptest dns.gethostname 設定服務ip,設定tcp埠號 ipendpoint ip newipendpoint ...

關於使用UDP套接字進行本地程序通訊

1 linux中程序間的通訊可以使用套接字的方式 2 套接字的方式即將套接字的目的地設為 127.0.0.1 port 以發包的形式將資料傳輸到本地的某個程序 3 套接字的方式可以選擇udp也可以選擇tcp。udp是不可靠連線,包頭中只有源埠,目的埠,udp長度以及udp的校驗和。傳輸層協議的校驗和...

UDP協議與UDP通訊

1 udp協議 udp是無連線通訊協議,即在資料傳輸時,資料的傳送端和接收端不建立邏輯連線。簡單來說,當一台計算機向另外一台計算機傳送資料時,傳送端不會確認接收端是否存在,就會發出資料,同樣接收端在收到資料時,也不會向傳送端反饋是否收到資料。但是在使用udp協議傳送資料時,由於udp的面向無連線性,...