C语言实现UDP连接的参考代码
来源:互联网 发布:下载2g3g4g网络切换器 编辑:程序博客网 时间:2024/05/17 04:22
C语言实现UDP连接的参考代码,Client连接上Server后将自己所在目录下的"liu"文件中的前三行文字发送到Server端去,然后Server负责接收和显示。
/**************server.c**************/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<netdb.h>#include<errno.h>#include<sys/types.h>int port=8888;int main(){ int sockfd; int len; int z; char buf[256]; struct sockaddr_in adr_inet; struct sockaddr_in adr_clnt; printf("waiting for client...\n"); adr_inet.sin_family=AF_INET; adr_inet.sin_port=htons(port); adr_inet.sin_addr.s_addr=htonl(INADDR_ANY); bzero(&(adr_inet.sin_zero),8); len=sizeof(adr_clnt); sockfd=socket(AF_INET,SOCK_DGRAM,0); if(sockfd==-1){ perror("socket error_1"); exit(1); } z=bind(sockfd,(struct sockaddr *)&adr_inet,sizeof(adr_inet)); if(z==-1){ perror("bind error_1"); exit(1); } while(1){ z=recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&adr_clnt,&len); if(z<0){ perror("recvfrom error_1"); exit(1); } buf[z]=0; printf("接收:%s",buf); if(strncmp(buf,"stop",4)==0){ printf("结束....\n"); break; } } close(sockfd); exit(0);}
/***************client.c***************/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<netdb.h>#include<errno.h>#include<sys/types.h>int port=8888;int main(int argc,char *argv[]){ int sockfd; int i=0; int z; char buf[80],str1[80]; struct hostent *host; struct sockaddr_in adr_srvr; if(argc<2){ fprintf(stderr,"please enter the server's hostname!\n"); exit(1); } if((host=gethostbyname(argv[1]))==NULL){ herror("gethostbyname error!"); exit(1); } FILE *fp; printf("open file....\n"); fp=fopen("liu","r"); if(fp==NULL){ perror("failed to open file"); exit(1); } printf("connecting server....\n"); adr_srvr.sin_family=AF_INET; adr_srvr.sin_port=htons(port); adr_srvr.sin_addr=*((struct in_addr *)host->h_addr); bzero(&(adr_srvr.sin_zero),8); sockfd=socket(AF_INET,SOCK_DGRAM,0); if(sockfd==-1){ perror("socket error!"); exit(1); } printf("send file ...\n"); for(i=0;i<3;i++){ fgets(str1,80,fp); printf("%d:%s",i,str1); sprintf(buf,"%d:%s",i,str1); z=sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&adr_srvr,sizeof(adr_srvr)); if(z<0){ perror("recvfrom error"); exit(1); } } printf("send ....\n"); sprintf(buf,"stop\n"); z=sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&adr_srvr,sizeof(adr_srvr)); if(z<0){ perror("sendto error"); exit(1); } fclose(fp); close(sockfd); exit(0);}
运行截图:
Server端:
Client端:
(————完————)
- C语言实现UDP连接的参考代码
- C语言变参函数的实现 参考代码
- 【C语言】【unix c】编写代码实现基于UDP的网络通信
- C语言TCP参考代码
- C语言实现UDP打洞
- C语言实现UDP打洞
- C语言实现UDP打洞
- linux下c语言udp连接实例
- Linux下C语言实现简单的udp通信
- IP/UDP校验和的C代码实现
- C语言代码书写规范[参考]
- C语言字符串连接的实现
- 在网上找到的C语言连接Access代码(在这个基础上实现数据插入和删除)
- C语言--利用UDP实现socket通信
- Linux C语言实现 UDP Socket
- C语言实现简单UDP协议服务端
- 实现udp打洞的代码
- KMP算法的C语言代码实现
- Android的Service学习一
- ajax学习系列之二: 使用 JavaScript 和 Ajax 发出异步请求
- 芯片KC89C72 可编程声音发生器(PSG)
- ajax学习系列之三: 中的高级请求和响应
- 从U-Boot源码看C语言对汇编代码中的符号引用
- C语言实现UDP连接的参考代码
- android的Service学习二
- ajax学习系列之四: 利用 DOM 进行 Web 响应
- ajax学习系列之五: 操纵 DOM
- 声明式异常处理
- 集合框架
- Android 各种颜色值 colors.xml
- ajax学习系列之六: 建立基于 DOM 的 Web 应用程序
- 高频和低频EOC方案的对比