基于UDP的回声服务器/客户端
来源:互联网 发布:@Requestbody解析json 编辑:程序博客网 时间:2024/05/01 02:09
//服务器端代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#define MAXN 1024void error_handling(const char *str){fputs(str,stderr);fputc('\n',stderr);exit(1);}int main(int argc,char *argv[]){int serv_sock;int n=5,str_len;struct sockaddr_in serv_addr;struct sockaddr_in clnt_addr;socklen_t clnt_addr_size;char msg[MAXN];if(argc!=2){printf("Usage:%s <port>\n",argv[0]);exit(1);}serv_sock=socket(PF_INET,SOCK_DGRAM,0);//第一步:注意是SOCK_DGRAMif(serv_sock==-1)error_handling("socket() error");memset(&serv_addr,0,sizeof(serv_addr));serv_addr.sin_family=AF_INET;serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);serv_addr.sin_port=htons(atoi(argv[1]));if(bind(serv_sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr))==-1)//第二步error_handling("bind() error");while(n--){clnt_addr_size=sizeof(clnt_addr);str_len=recvfrom(serv_sock,msg,MAXN,0,(struct sockaddr*)&clnt_addr,&clnt_addr_size);//接收数据sendto(serv_sock,msg,str_len,0,(struct sockaddr*)&clnt_addr,clnt_addr_size);//发送数据}close(serv_sock);return 0;}
//客户端代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#define MAXN 1024void error_handling(const char *str){fputs(str,stderr);fputc('\n',stderr);exit(1);}int main(int argc,char *argv[]){int clnt_sock,str_len;struct sockaddr_in serv_adr,from_adr;socklen_t from_adr_sz;char msg[]="HelloWorld";char store[1024];if(argc!=3){printf("ERROR\n");exit(1);}clnt_sock=socket(PF_INET,SOCK_DGRAM,0);//第一步if(clnt_sock==-1)error_handling("socket() error");memset(&serv_adr,0,sizeof(serv_adr));serv_adr.sin_family=AF_INET;serv_adr.sin_addr.s_addr=inet_addr(argv[1]);serv_adr.sin_port=htons(atoi(argv[2]));str_len=sendto(clnt_sock,msg,strlen(msg),0,(struct sockaddr*)&serv_adr,sizeof(serv_adr));//发送数据from_adr_sz=sizeof(from_adr);recvfrom(clnt_sock,store,str_len,0,(struct sockaddr*)&from_adr,&from_adr_sz);//接收数据store[str_len]='\0';printf("Message from server: %s\n",store);close(clnt_sock);return 0;}
0 0
- 基于UDP的回声服务器/客户端
- socket编程基于UDP的服务端客户端回声程序
- 基于TCP/IP的迭代回声服务器/客户端
- 基于Windows的迭代回声服务器端/客户端(基于UDP的服务器端/客户端)
- 基于UDP协议的服务器/客户端程序
- 基于UDP协议的服务器/客户端程序
- 基于UDP协议的服务器/客户端
- 计算机网络基于UDP的服务器和客户端
- 回声服务器和客户端的实现
- 基于UDP的服务器和客户端之间的通信
- linux环境下基于UDP的 客户端服务器模型
- 【Linux网络编程】基于UDP的客户端/服务器程序
- TCP/IP回声服务器客户端
- 回声客户端的实现
- 回声客户端的实现
- 基于TCP的迭代回声服务器端和客户端
- 5.9UDP客户端服务器-基于OK6410
- 基于UDP的服务器端/客户端
- [占坑]Tinkoff Challenge
- SSH原理与运用(一):远程登录
- 编程基础题-4
- Unity keystore的小问题
- sql 语句大全
- 基于UDP的回声服务器/客户端
- [日常]JSCPC2017游记
- equals方法 和 hashCode方法
- error: 'isinf' or 'isnan' or 'iserr' was not declared in this scope问题解决
- ActivityManager原理认识笔记
- POJ 1164 The Castle 笔记
- ES6 解构赋值
- 关于在线程中使用AfxGetMainWnd()出错的问题,终于找到了
- Java Socket编程