Linux网络编程之UDP编程,客户端标准输入给服务器端
来源:互联网 发布:雷蛇淘宝旗舰店 编辑:程序博客网 时间:2024/05/22 10:40
11_server_udp.c
/*Linux网络编程之UDP编程服务器端*/#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <strings.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/ip.h>#include <netinet/in.h>#define SER_PORT 9999#define SER_IP "192.168.7.115"void sys_error(char *ch){ perror(ch); exit(1);}int main(void){ int serfd,ret; char buf[BUFSIZ]; //1.建立数据报套接字 if((serfd=socket(AF_INET,SOCK_DGRAM,0)) < 0) sys_error("socket failed"); //2.绑定本地ip和端口 struct sockaddr_in ser; bzero(&ser,sizeof(ser)); ser.sin_family = AF_INET; ser.sin_port = htons(SER_PORT); ser.sin_addr.s_addr = inet_addr(SER_IP); ret = bind(serfd,(struct sockaddr *)&ser,sizeof(ser)); if(ret < 0) sys_error("bind failed"); printf("bind ok\n"); //3.接收数据 while(1) { bzero(buf,BUFSIZ); ret=recvfrom(serfd,buf,BUFSIZ,0,NULL,NULL); if(ret < 0) sys_error("recvfrom failed"); if(!strncmp(buf,"quit",4)) break; printf("client send buf:%s",buf); } return 0;}/*$ ./11_server_udpbind okclient send buf:woooooclient send buf:066666*/
11_client_udp.c
/*Linux网络编程之UDP编程,标准输入给服务器端客户端*//*--->inet_aton( ) 只能转IPV4所有地址 将strptr所指的字符串转换成32位的网络字节序二进制值 #include <arpa/inet.h> int inet_aton(const char *strptr, struct in_addr *addrptr); 2.//通用地址结构 struct sockaddr { sa_family_t sa_family;//地址族,AF_xxx char sa_data[14];//14字节协议地址 } 3.//Internet协议地址结构(一般用这个) struct sockaddr_in { u_short sin_family; // 地址族, AF_INET,2 bytes u_short sin_port; // 端口,2 bytes struct in_addr sin_addr; // IPV4地址,4 bytes char sin_zero[8]; // 8 bytes unused,作为填充 }; 4.//IP地址的转换 inet_addr( ) 将strptr所指的字符串转换成32位的网络字节序二进制值,返回转换后的地址。 int_addr_t inet_addr(const char *strptr); 5.//IPv4地址结构 // internet address struct in_addr { in_addr_t s_addr; // u32 network address }; 6.ssize_t sendto(int socket, const void *message, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t dest_len); 参数1:文件描述符 参数2:发送的缓冲区 参数3:缓存区长度 参数4:一般填0 参数5:结构体信息 参数6:结构体长度*/#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <strings.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <netinet/ip.h>#define SER_PORT 9999#define SER_IP "192.168.7.115"void sys_error(char *ch){ perror(ch); exit(1);}int main(void){ int clifd,ret; char buf[BUFSIZ]; //1.建立数据报套接字 clifd=socket(AF_INET,SOCK_DGRAM,0); if(clifd < 0) sys_error("socket failed"); //2.发送数据 struct sockaddr_in cli; bzero(&cli,sizeof(cli)); cli.sin_family = AF_INET;//选择IPV4 cli.sin_port = htons(SER_PORT);//填充端口 inet_aton(SER_IP,&cli.sin_addr.s_addr);//填充ip地址 while(1) { bzero(buf,BUFSIZ); fgets(buf,BUFSIZ,stdin); ret=sendto(clifd,buf,BUFSIZ,0,(struct sockaddr *)&cli,sizeof(cli)); if(ret < 0) sys_error("sendto failed"); if(!strncmp(buf,"quit",4)) break; } return 0;}/*$ ./11_client_udpwooooo066666quit*/
阅读全文
0 0
- Linux网络编程之UDP编程,客户端标准输入给服务器端
- 基于UDP的服务器端/客户端---------网络编程(Linux----C)
- UNIX网络编程----UDP客户端和服务器端
- 网络编程之UDP客户端
- Linux网络编程--客户端连接服务器端
- Linux网络编程-客户端与服务器端通信
- java网络编程客户端输入字符串,服务器端将其反转后输出给客户端,客户端显示出来
- linux之UDP网络编程
- Linux 网络编程之UDP
- Linux网络编程之UDP
- linux网络编程之UDP
- linux网络编程之UDP
- Linux网络编程之UDP
- java网络编程之socket网络编程示例(服务器端/客户端)
- java网络编程之socket网络编程示例(服务器端/客户端)
- linux网络编程之UDP编程
- linux网络socket编程服务器端(tcp/udp)
- java网络编程客户端,服务器端
- 原因: java.lang.NoClassDefFoundError: helloworld/Helloworld (wrong name: Helloworld)
- 浅谈游戏中的位置判断——点乘+叉乘
- Git 将代码恢复到一个历史的版本
- javaweb后端实例jdbcutil
- SpringMVC(1)----@RequestParam和@PathVariable用法小结
- Linux网络编程之UDP编程,客户端标准输入给服务器端
- 美团校招在线考试笔试题:钱币面值组合
- Ubuntu16.04环境下安装caffe及运行faster-rcnn gpu 實現
- postman下载与安装
- 将银行卡中间八个字符隐藏为*
- 最全的Oracle数据库备份与还原命令
- Linux_开发工具
- 大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener
- Oracle sql性能优化