udp_server
来源:互联网 发布:卷积运算公式矩阵 编辑:程序博客网 时间:2024/06/07 03:26
服务器端
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>static void usage(const char* proc){ printf("Usage: %s[local_ip] [local_port]\n", 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 2; } struct sockaddr_in local; local.sin_family = AF_INET; local.sin_addr.s_addr = inet_addr(argv[1]); local.sin_port = htons(atoi(argv[2])); if(bind(sock, (struct sockaddr*)&local, sizeof(local)) < 0) { perror("bind"); return 3; } printf("bind success...\n"); 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("client#:%s", buf); sendto(sock, buf, sizeof(buf)-1, 0, (struct sockaddr *)&client, len); } else { close(sock); printf("client quit...\n"); break; } } return 0;}
客户端
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>static void usage(const char* proc){ printf("Usage: %s[local_ip] [local_port]\n", 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 2; } struct sockaddr_in server; server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(argv[1]); server.sin_port = htons(atoi(argv[2])); socklen_t len = sizeof(server); char buf[1024]; while(1) { printf("server to ###"); fflush(stdout); ssize_t s = read(0, buf, sizeof(buf)-1); if(s > 0) { buf[s] = 0; sendto(sock, buf, sizeof(buf)-1, 0, (struct sockaddr *)&server, len); } s = recvfrom(sock, buf, sizeof(buf)-1, 0, (struct sockaddr *)&server, &len); if(s > 0) { printf("client echo$:%s",buf); } } return 0;}
阅读全文
0 0
- udp_server
- udp_server
- udp_server
- udp_server
- UDP_server
- udp_server
- udp_server
- udp_server
- 【网络】udp_server
- linux之UDP_server
- 【Linux】中UDP_server的实现
- 网络编程学习笔记(udp_server函数)
- 使用udp_client或者udp_connect和udp_server 的时间获取函数
- UDP_server服务器和用户空间下如何实现可靠性
- Nginx配置详解
- java 中什么时候用抽象类,什么时候用 接口(面向对象的继承与多态)
- C++类和对象
- 解决部分华为,乐视手机听筒模式听不到声音问题
- 服务相关工具类
- udp_server
- 使用反射查询数据
- Struts2笔记05 action操作域对象
- 糟糕的内心独白-java工作怎么这么难找啊?
- windows程序设计——功能表及其他资源
- React-Native之手势进阶篇
- 2017/6/26 学习心得 jq节点操作
- 链表常见操作java实现一:链表初始化,求链表长度
- Mac disk清理工具