UDP网络通讯编程
来源:互联网 发布:临床研究中心网络构架 编辑:程序博客网 时间:2024/05/22 00:15
1.编程模型
2.函数学习
创建socket socket
绑定地址 bind
接收数据 recvfrom
发送数据 sendto
结束连接 close
3.综合实例
/* udp_server.c */#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>int main(){int sockfd;struct sockaddr_in server_addr;struct sockaddr_in client_addr;char buffer[128];int addrlen;int n;//创建socketsockfd = socket(AF_INET,SOCK_DGRAM,0);//绑定地址bzero(&server_addr,sizeof(struct sockaddr_in));server_addr.sin_family = AF_INET;server_addr.sin_port = htons(8888);server_addr.sin_addr.s_addr = htonl(INADDR_ANY);bind(sockfd,(struct sockaddr*)(&server_addr),sizeof(struct sockaddr));//接收数据while(1){addrlen = sizeof(struct sockaddr);bzero(buffer,sizeof(buffer));n = recvfrom(sockfd,buffer,128,0,(struct sockaddr*)(&client_addr),&addrlen);buffer[n] = '\n';printf("server received :%s",buffer);}//结束连接close(sockfd);return 0;}
/* udp_client.c */#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>int main(int argc,char **argv){int sockfd;char buffer[128];struct sockaddr_in server_addr;if(argc != 2){printf("Usage:%s server_ip\n",argv[0]);exit(1);}//创建套接字sockfd = socket(AF_INET,SOCK_DGRAM,0);bzero(&server_addr,sizeof(struct sockaddr_in));server_addr.sin_family = AF_INET;server_addr.sin_port = htons(8888);inet_aton(argv[1],&server_addr.sin_addr);//发送数据while(1){printf("please input char:\n");fgets(buffer,128,stdin);sendto(sockfd,buffer,strlen(buffer),0,(struct sockaddr*)(&server_addr),sizeof(struct sockaddr));bzero(buffer,128);}//关闭连接close(sockfd);return 0;}
0 0
- UDP网络通讯编程
- 网络通讯TCP和UDP的编程流程
- 使用UDP网络通讯
- 网络通讯TCP/UDP
- 网络通讯方式 ------ TCP、UDP
- JAVA之UDP网络通讯
- TCP UDP协议网络通讯
- Qt5 UDP网络通讯详解
- UDP网络通讯/UDP可靠性实现
- 基于UDP的网络通讯程序
- 详解网络通讯Socket、TCP、UDP
- python服务器和客户端网络通讯UDP
- 基于UDP的网络通讯(socket)
- 网络通讯选择TCP或UDP的指导方针
- java网络通讯(UDP与TCP)
- C#.Net Socket网络通讯编程
- C#.Net Socket网络通讯编程
- 网络通讯之套接字编程
- 把一个数组里的数组合全部列出
- Android Studio最新版1.2百度云下载镜像
- java 反射
- HDOJ 5222 Exploration 并查集+拓扑排序 找环
- xxx
- UDP网络通讯编程
- 解决.gitignore无法忽略的文件以及自身被忽略的方法
- 一次完整的HTTP事务是怎样一个过程?
- 兼容安卓和iOS:Windows丧失平台优势
- C++动态二维数组内存的分配和释放 opencv
- sd老师讲课的佛为服务了健康
- 使用vs2005 C语言调用lua脚本实现hello,world
- 还是回文
- windows下nginx日志分割