套接字编程(二)-----基于UDP协议
来源:互联网 发布:好听的网络公司名称 编辑:程序博客网 时间:2024/06/13 18:26
服务器端:
#include<stdio.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<arpa/inet.h>#include<string.h>#include<stdlib.h>int usage(const char *proc){printf("usage:%s [local_ip] [local_port]",proc);}int main(int argc,char *argv[]){ if(argc!=3) { usage(argv[0]); return 1; } int sock=socket(AF_INET,SOCK_DGRAM,0); if(sock<0) { perror("socket"); return 1; } struct sockaddr_in local; local.sin_family=AF_INET; local.sin_port=htons(atoi(argv[2])); local.sin_addr.s_addr=inet_addr(argv[1]); if(bind(sock,(struct sockaddr*)&local,sizeof(local))<0) { printf("please enter:"); perror("bind"); return 3; } struct sockaddr_in client; socklen_t len=sizeof(client); char buf[1024]; while(1) { ssize_t s=recvfrom(sock,buf,sizeof(buf)-1,0,\ (struct sockaddr*)&client,&len); if(s>0) { buf[s]=0; printf("%s:%d say: %s\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port),buf); sendto(sock,buf,strlen(buf),0,\ (struct sockaddr*)&client,len); } } close(sock); return 0;}
客户端
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<netinet/in.h>static void usage(const char *proc){ printf("usage:[local_ip] [local_port]",proc);}int main(int argc,char *argv[]){ if(argc!=3) { usage(argv[0]); perror("usage"); return 1; } int sock=socket(AF_INET,SOCK_DGRAM,0); if(sock<0) { perror("socket"); return 2; } struct sockaddr_in peer; peer.sin_family=AF_INET; peer.sin_port=htons(atoi(argv[2])); peer.sin_addr.s_addr=inet_addr(argv[1]); char buf[1024]; while(1) { printf("please enter:"); fflush(stdout); ssize_t s=read(sock,buf,sizeof(buf)-1); if(s>0) { buf[s-1]=0; sendto(sock,buf,strlen(buf),0,(struct sockaddr*)&peer,sizeof(peer)); ssize_t _s=recvfrom(sock,buf,sizeof(buf)-1,0,NULL,NULL); printf("sever echo:%s\n",buf); } }}
阅读全文
0 0
- 套接字编程(二)-----基于UDP协议
- Windows套接字编程:基于TCP和UDP协议
- Windows套接字编程:基于TCP和UDP协议
- UDP套接字编程(二)
- 基于 TCP (面向连接)和无连接UDP协议的 socket 套接字编程
- UDP协议/套接字
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP(用户数据报协议)和套接字编程
- Socket套接字编程(二)——UDP编程
- A Review on Deep Learning Techniques Applied to Semantic Segmentation(译)-(2)
- android 调用系统命令实现关机2017亲测有效
- MySQL用户权限管理详解
- 层的隐藏
- 计算机安全
- 套接字编程(二)-----基于UDP协议
- 学习淘淘商城第八十四课(单点登录检查数据是否可用---Controller层及测试)
- 警告: [SetContextPropertiesRule]{Context} Setting property source to org.eclipse.jst.jee.serve
- 创建进程程序3 子函数1 创建进程选项
- <纯干货-4> 加州大学伯克利分校2017年最新深度强化学习视频课程_part3
- [LeetCode] Triangle
- 007 使用MyBatis,easyUI实现CRUD操作样例-R操作(重构)
- 安卓实现图片旋转放大缩小
- 树莓派程序开机自启动