UNIX Socket UDP 代码
来源:互联网 发布:网络宽带设置 编辑:程序博客网 时间:2024/06/04 19:16
客户端
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <arpa/inet.h>#include <unistd.h>// UDP 通讯程序代码-Clientint main(int argc, char* argv[]){if (argc < 2){printf("Please input something!\r\n");exit(1);}// 因为是UDP套接字,使用SOCK_DGRAM,而不是SOCK_STREAMint sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP/*TCP使用0*/);if (sock < 0){printf("创建套接字失败!\r\n");exit(1);}// Send tostruct sockaddr_in toAddr;memset(&toAddr, 0, sizeof(toAddr));toAddr.sin_family = AF_INET;toAddr.sin_addr.s_addr = inet_addr("127.0.0.1");toAddr.sin_port = htons(4000);// Start to send toif (sendto(sock, argv[1], strlen(argv[1]), 0, (struct sockaddr*)&toAddr, sizeof(toAddr)) != strlen(argv[1])){printf("sendto()函数使用失败!,\r\n");close(sock);exit(1);}// Receive formstruct sockaddr_in fromAddr;char recvBuffer[128] = {0};unsigned int fromLen = sizeof(fromAddr);if( recvfrom(sock, recvBuffer, 128, 0, (struct sockaddr*)&fromAddr, &fromLen) < 0){printf("recvfrom()函数使用失败!,\r\n");close(sock);exit(1);}// 把接收的数据输出到屏幕上printf("recvfrom()result: %s\r\n", recvBuffer);close(sock);return 0;}
服务端
// UDP Server#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <arpa/inet.h>#include <unistd.h>int main(){// Create UDP socketint sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if (sock < 0){printf("Create socket faild\r\n");exit(1);}// Bind socket and the client of send link requeststruct sockaddr_in fromAddr;memset(&fromAddr, 0, sizeof(fromAddr));fromAddr.sin_family = AF_INET;fromAddr.sin_addr.s_addr = htonl(INADDR_ANY);fromAddr.sin_port = htons(4000);if (bind(sock, (struct sockaddr*)&fromAddr, sizeof(fromAddr)) < 0){printf("Bind socket faild!\r\n");close(sock);exit(1);}struct sockaddr_in toAddr;char recvBuffer[128] = {0};int recvLen = -1;unsigned int addrLen = sizeof(toAddr);while(1){if ((recvLen = recvfrom(sock, recvBuffer, 128, 0, (struct sockaddr*)&toAddr, &addrLen)) < 0){printf("Receive message faild!\r\n");close(sock);exit(1);}if (recvLen > 0){printf("Recive message:%s\r\n", recvBuffer);}if (sendto(sock, recvBuffer, recvLen, 0, (struct sockaddr*)&toAddr, sizeof(toAddr)) != recvLen){printf("sendto faild\r\n");close(sock);exit(1);}}close(sock);return 0;}
- UNIX Socket UDP 代码
- socket UDP 代码
- Socket Server 代码:UDP
- 嵌入式 Unix-domain-socket详解UDP
- linux下unix socket通信--基于udp
- SOCKET udp 服务器端代码实现
- UNIX 网络编程测试代码 -- UDP通信
- 【Unix 网络编程】UDP 客户/服务器简单 Socket 程序
- UNIX网络编程:socket套接字(TCP与UDP)
- linux C ----- udp, tcp, unix socket通信简单例子
- SOCKET UDP 发送和接受示例代码
- java UDP Socket(含代码)
- socket unix domain IPC代码示例
- 【Java TCP/IP Socket】UDP Socket(含代码)
- 【Java TCP/IP Socket】UDP Socket(含代码)
- 【Java TCP/IP Socket】UDP Socket(含代码)
- 【Java TCP/IP Socket】UDP Socket(含代码)
- 【Java TCP/IP Socket】UDP Socket(含代码)
- uva 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes?
- 重构代码的7个阶段
- 错误积累
- Android开发音乐播放器
- mark和reset的网上注解
- UNIX Socket UDP 代码
- 项目管理其实可以简单一点——项目继续
- uva 10970 Big Chocolate
- 多些时间能少写些代码
- java链表
- 程序员技术练级攻略
- Android不是所有的手机号码,都可以获取。
- get和post
- uC/OS-II - Port for the LINUX Operating System