Linux C/C++UDP通信实现
生活随笔
收集整理的這篇文章主要介紹了
Linux C/C++UDP通信实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、UDP通信流程
- 二、代碼實現
- 1.服務器
- 2.客戶端
一、UDP通信流程
二、代碼實現
1.服務器
代碼如下(示例):
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h>int main() {// 1.創建一個通信的socketint fd = socket(PF_INET, SOCK_DGRAM, 0);if (fd == -1){perror("socket");exit(-1);}// 2.綁定struct sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_port = htons(9999);addr.sin_addr.s_addr = INADDR_ANY;int ret = bind(fd, (struct sockaddr*)&addr, sizeof(addr));if (ret == -1){perror("bind");exit(-1);}// 3.通信while (1){char buf[128];char ipbuf[16];struct sockaddr_in caddr;int len = sizeof(caddr);//接受數據int num = recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *)&caddr, &len);printf("client ip:%s,port :%d\n",inet_ntop(AF_INET, &caddr.sin_addr.s_addr, ipbuf, sizeof(ipbuf)),ntohs(caddr.sin_port));printf("client say:%s\n", buf);//發送數據sendto(fd, buf, strlen(buf) + 1,0,(struct sockaddr*)&caddr,sizeof(caddr));}close(fd);return 0; }2.客戶端
代碼如下(示例):
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h>int main() {// 1.創建一個通信的socketint fd = socket(PF_INET, SOCK_DGRAM, 0);if (fd == -1){perror("socket");exit(-1);}//服務器地址信息struct sockaddr_in saddr;saddr.sin_family = AF_INET;saddr.sin_port = htons(9999);inet_pton(AF_INET, "182.61.11.197", &saddr.sin_addr.s_addr);int num = 0;// 3.通信while (1){char buf[128];sprintf(buf, "hello ,i am client %d\n", num++);//發送數據sendto(fd, buf, strlen(buf) + 1,0,(struct sockaddr*)&saddr,sizeof(saddr));//接受數據int num = recvfrom(fd, buf, sizeof(buf), 0, NULL, NULL);printf("server say:%s\n", buf);sleep(1);}close(fd);return 0; }總結
以上是生活随笔為你收集整理的Linux C/C++UDP通信实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity 动态切换天空盒\反射天空盒材
- 下一篇: SM3算法对大文件做摘要