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
原创粉丝点击