目錄
一、udp模型
1、服務端
2、客戶端
二、測試程式
1、服務端
2、客戶端
沒有 accept,不需要建立建立連線;使用 recvfrom 代替 read,失敗返回 -1,成功返回 - 從核心緩衝區讀到的位元組數
使用 sendto 代替 write,失敗返回 -1,成功返回 - 寫到核心緩衝區的位元組數
struct sockaddr_in servaddr;
struct sockaddr_in connaddr;
socklen_t servsocklen; // 本地已知
socklen_t connsocklen; // 對端未知
lfd = socket(af_inet, sock_dgram, 0);
bind(lfd, &servaddr, servsocklen); //(struct sockaddr *)&servaddr
listen(lfd, maxlistensize);
while(1)
沒有 connect,不需要建立建立連線;使用 sendto 代替 write,失敗返回 -1,成功返回 - 寫到核心緩衝區的位元組數
使用 recvfrom 代替 read,失敗返回 -1,成功返回 - 從核心緩衝區讀到的位元組數
struct sockaddr_in servaddr;
struct sockaddr_in clieaddr;
socklen_t servsocklen; // 對端已知
socklen_t cliesocklen; // 本地已知
cfd = socket(af_inet, sock_dgram, 0);
//bind(lfd, &clieaddr, cliesocklen); //(struct sockaddr *)&clieaddr
while(1)
#include #include #include #include #include #include #include #define serv_ip "127.0.0.1"
#define serv_port 6666
int main()
printf("client ip: %s, client port: %d\n", inet_ntop(af_inet, &clie_addr.sin_addr.s_addr, clie_ipbuf, (socklen_t)sizeof(clie_ipbuf)), ntohs(clie_addr.sin_port));
printf("%s\n", buf);
//處理
for(i=0; i#include #include #include #include #include #include #define serv_ip "127.0.0.1"
#define serv_port 6666
#define clie_port 8888 // 固定埠
int main()
n = sendto(clie_fd, buf, strlen(buf), 0, (struct sockaddr *)&serv_addr, serv_addr_len);
if(n < 0)
//讀取
memset(buf, 0, sizeof(buf));
n = recvfrom(clie_fd, buf, sizeof(buf), 0, (struct sockaddr *)&serv_addr, &serv_addr_len);
if(n < 0)
//列印處理,有問題,可能不是c風格字串
printf("%s\n", buf); }
close(clie_fd);
printf("client close...\n");
return 0;
}
UDP程式設計模型
udp程式設計模型 基於udp伺服器 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 迴圈接收資料,用函式recvfrom 4 關閉網路連線 基於udp客戶端 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到so...
UDP網路程式設計
基於udp 伺服器 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到socket上,用函式bind 3.迴圈接收資料,用recvfrom 4.關閉網路連線。基於udp 客戶端 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到...
UDP網路程式設計
基於udp 通訊模型 由上圖可以看出udp通訊的步驟如下 基於udp 伺服器 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 迴圈接收資料,用函式recvfrom 4 關閉網路連線 基於udp 客戶端 1 建立乙個socket,用函式so...