UDP連線實現

2021-04-22 02:31:59 字數 1270 閱讀 3318

伺服器端**:

#include 

#include 

void main()

if(lobyte(wsadata.wversion)!=1 || 

hibyte(wsadata.wversion)!=1)

//create socket

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

sockaddr_in addrsrv;

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

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);

//bind 

bind(socketsrv,(sockaddr*)&addrsrv,sizeof(sockaddr));

//wait and receive data

sockaddr_in addrclient;

int len=sizeof(sockaddr);

char recvbuf[100];

while(1)

//close socket

closesocket(socketsrv);

wsacleanup();

}客戶端**:

#include 

#include 

void main()

if(lobyte(wsadata.wversion)!=1 ||

hibyte(wsadata.wversion)!=1)

//create socket

socket sockclient=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);

//send data 

sendto(sockclient,"hello yuwei",strlen("hello yuwei")+1,0,

(sockaddr*)&addrsrv,sizeof(sockaddr));

//close socket

closesocket(sockclient);

wsacleanup();

}

Linux實現UDP連線

udp是無連線不可靠的ip協議,和tcp有所不同。udp伺服器呼叫socket bind listen 完成套接字初始化後,呼叫accept 阻塞等待處於監聽埠的狀態。udp客戶端呼叫socket 初始化後,呼叫connect 傳送syn欄位並阻塞等待應答。客戶端如果一直與服務端連線,服務端退出後重...

socket連線監聽udp包

用的2010的vc 版本,設定很簡單,就是一般的設定,就可以監聽了。但主要說一些配置外的。這裡可能用自定義訊息,1 利用方法send message 控制代碼名,0,0 傳送訊息。新增控制代碼時,應先定義 define receive data wm user 100 注意後面的wm user 10...

可靠的UDP連線 MTU MSS

這個網頁裡面寫了 其可靠性必須由上層應用實現。一般都會採用訊息重傳來實現其可靠性,採用訊息重傳的時候有兩種方式,一種是傳送者發起,另一種是接收者發起。前一種接收者發的是ack。傳送者收到ack,就不重傳。但是可能ack內爆。第二種接收者發的是nack。傳送者收到nack,就重傳。但是可能nack內爆...