udp socket服务端客户端示例
来源:互联网 发布:工农兵大学生 知乎 编辑:程序博客网 时间:2024/05/09 08:31
创建UDP服务端监听
客户端发送数据
服务端
#include <stdio.h>#include <sys/select.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#include <stdlib.h>#define PORT 12345#define BUF_SIZE 65536voidbuf_dump(char *buf, int len){#define PER_LINE 32printf("--------------------------------\n");int i;for (i = 0; i < len; i++) {printf("%02x ", (unsigned char)buf[i]);if (((i + 1) % PER_LINE) == 0) {printf("\n");}}printf("\n--------------------------------\n");#undef PER_LINE}intmain(void){printf("server start\n");int ret = -1;int sockfd = -1;sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (sockfd < 0) {perror("socket()");}struct sockaddr_in server_addr;memset(&server_addr, 0, sizeof(server_addr));server_addr.sin_family = AF_INET;server_addr.sin_port = htons(PORT);server_addr.sin_addr.s_addr = htons(INADDR_ANY);ret = bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));if (ret < 0) {perror("bind()");}int max_fd = sockfd + 1;fd_set rfds;char buf[BUF_SIZE];int n = 0;while (1) {FD_ZERO(&rfds);FD_SET(sockfd, &rfds);ret = select(max_fd, &rfds, NULL, NULL, NULL);if (ret > 0) {if (FD_ISSET(sockfd, &rfds)) {memset(buf, 0, sizeof(buf));n = recvfrom(sockfd, buf, sizeof(buf), 0, NULL, NULL);if (n > 0) {buf_dump(buf, n);} else {perror("recvfrom()");}}} else {perror("select()");}}return 0;}
客户端
#include <stdio.h>#include <sys/select.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#define PORT 12345#define BUF_SIZE 65536intmain(void){printf("client start\n");int ret = -1;int sockfd = -1;sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (sockfd < 0) {perror("socket()");}struct sockaddr_in server_addr;memset(&server_addr, 0, sizeof(server_addr));server_addr.sin_family = AF_INET;server_addr.sin_port = htons(PORT);server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");while (1) {ret = sendto(sockfd, "hello", 5, 0, (struct sockaddr *)&server_addr, sizeof(server_addr));if (ret < 0) {perror("sendto()");}sleep(2);}return 0;}
- udp socket服务端客户端示例
- udp服务端和客户端程序示例
- 基于UDP的socket 客户端和服务端
- 网络编程--udp--客户端--服务端--Socket
- 【Android】Socket通讯示例(服务端/客户端)
- 一个简单的UDP服务端和客户端示例
- 一个简单的UDP服务端和客户端示例
- 【转】UDP Socket编程-客户端和服务端双向通信
- socket编程基于UDP的服务端客户端回声程序
- windows Socket编程之UDP的服务端和客户端
- (基于UDP协议/tcp协议)socket客户端,服务端
- udp 客户端 服务端
- Socket ( Udp) 通信服务端
- C# 服务端与客户端示例(Socket通信)
- Socket客户端与服务端
- JAVA Socket & UDP 示例
- Genesis UDP 服务端 和 客户端
- UDP服务端和客户端实现
- UVa 10304 - Optimal Binary Search Tree
- srpingMVC过滤器配置
- 【转】C#获取当前程序运行路径的方法集合
- hdu 1574
- eclipse修改workspace
- udp socket服务端客户端示例
- PHPCMS v9常用语法收集
- CF 321C(Ciel the Commander-点分治)
- directx中变换矩阵生成算法
- boost::interprocess 内存映射文件的用法
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- GPS测试程序举例
- 查看网卡流量
- 从制作PPT看“全心全意为人民服务”