UDP簡單伺服器

2021-06-17 17:20:25 字數 2635 閱讀 1326

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 特殊方法的類,...