udp簡單伺服器與客戶端:
這裡用到了
recvfrom()----表示接受來自何處的連線請求資訊
sendto()-------要向何處傳送
下面這段**是伺服器原始碼:
下面主要用到:
socket()------建立udp協議的套接字
bind()-------繫結本機三元資訊
recvfrom()-----接收客戶端向本機伺服器傳送來得資訊;
sendto()-------向客戶端傳送訊息
1 #include
2 #include /* see notes */
3 #include
4 #include
5 6 #define ports 8765
7 8 #ifdef mydbg
9 #define trace() printf("%s:%s:%d\n", __func__, __file__, __line__)
10 #else
11 #define trace()
12 #endif
13 14 int myaccpet(int s, struct sockaddr_in *addr, socklen_t *len)
15 26
27 28 ///這裡列印請求端的位址,以及請求端開放的埠
29 printf("con: %s:%u\n", inet_ntoa(addr->sin_addr), ntohs(addr->sin_po rt));
30 31 return 0;
32 }
33 34 int main()
35 43
44 struct sockaddr_in my_addr;
45 memset(&my_addr, 0, sizeof(struct sockaddr));
46 my_addr.sin_family = pf_inet;
47 my_addr.sin_port = htons(ports); 將本地主機位元組序轉
換為網路的位元組序
48 my_addr.sin_addr.s_addr =inet_addr("127.0.0.1");//inaddr_any;
由本地網絡卡的ip決定(這裡可以修改的)
49 50 int addrlen = sizeof(struct sockaddr);
51 52 這裡繫結套接字與本機資訊
53 if(0 > bind(s, (struct sockaddr*)&my_addr, addrlen))
57 58 while(1)
80 }
81 82 }
83 下面是客戶端:
類似對比tcp的客戶端:
1 #include
2 #include /* see notes */
3 #include
4 #include
5 6 #define ports 8765
7 8 #ifdef mydbg
9 #define trace() printf("%s:%s:%d\n", __func__, __file__, __line__)
10 #else
11 #define trace()
12 #endif
13 14 int myconnect(int s, struct sockaddr_in *addr, socklen_t len)
15 24
25 //用於列印服務端的資訊
26 printf("con: %s:%u\n", inet_ntoa(addr->sin_addr), ntohs
(addr->sin_po rt));
27 28 return 0;
29 }
30 31 int main()
32 38
39 struct sockaddr_in my_addr;
40 memset(&my_addr, 0, sizeof(struct sockaddr));
41 ///初始劃三元結構體,該結構體包含要訪問的伺服器的三元資訊
42 my_addr.sin_family = pf_inet;
43 my_addr.sin_port = htons(ports);
44 my_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
45 int addrlen = sizeof(struct sockaddr);
46 47 trace();
48 /下面呼叫myconnect();這個函式來實現向服務端傳送資訊;
49 if(0 > myconnect(s, &my_addr, addrlen))
50 return -1;
51 52 while(1)
66 }
67
UDP伺服器的簡單實現
伺服器端 include include include include include include define err exit m do while 0 int main int argc,char argv int sock socket af inet,sock dgram,0 if ...
mysql udp伺服器 UDP伺服器
傳輸層主要應用的協議模型有兩種,一種是tcp協議,另外一種則是udp協議。tcp協議在網路通訊中佔主導地位,絕大多數的網路通訊借助tcp協議完成資料傳輸。但udp也是網路通訊中不可或缺的重要通訊手段。相較於tcp而言,udp通訊的形式更像是發簡訊。不需要在資料傳輸之前建立 維護連線。只專心獲取資料就...
基於UDP協議的伺服器 UDP伺服器建立方案
udp伺服器就是實現乙個基於udp協議的伺服器來與客戶端通訊。就是用來收發資料,進行資料處理的。與tcp伺服器不同的是不用建立連線,直接呼叫recvfrom來收包。跟tcp伺服器一樣,udp伺服器也可以通過使用 socketserver 庫很容易地被建立。先定義乙個實現 handle 特殊方法的類,...