linux-UDP
来源:互联网 发布:阿里云9.9半年主机 编辑:程序博客网 时间:2024/06/05 04:50
linux下UDP的例子如下:
//服务器端代码#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(int argc, char *argv[]){int sock;//sendto中使用的对方地址struct sockaddr_in toAddr;//在recvfrom中使用的对方主机地址struct sockaddr_in fromAddr;int recvLen;unsigned int addrLen;char recvBuffer[128];sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);if(sock < 0){printf("创建套接字失败了.\r\n");exit(0);}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() 函数使用失败了.\r\n");close(sock);exit(1);}while(1){addrLen = sizeof(toAddr);if((recvLen = recvfrom(sock,recvBuffer,128,0,(struct sockaddr*)&toAddr,&addrLen))<0){printf("()recvfrom()函数使用失败了.\r\n");close(sock);exit(1);}if(sendto(sock,recvBuffer,recvLen,0,(struct sockaddr*)&toAddr,sizeof(toAddr))!=recvLen){printf("sendto fail\r\n");close(sock);exit(0);}return 0;}}//客户端代码#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(int argc, char *argv[]){if(argc < 2){printf("请输入要传送的内容.\r\n");exit(0);}int sock;//sendto中使用的对方地址struct sockaddr_in toAddr;//在recvfrom中使用的对方主机地址struct sockaddr_in fromAddr;unsigned int fromLen;char recvBuffer[128];sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);if(sock < 0){printf("创建套接字失败了.\r\n");exit(1);}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);if(sendto(sock,argv[1],strlen(argv[1]),0,(struct sockaddr*)&toAddr,sizeof(toAddr)) != strlen(argv[1])){printf("sendto() 函数使用失败了.\r\n");close(sock);exit(1);}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);}
- linux-UDP
- linux udp
- UDP programming on Linux
- LINUX UDP网络编程
- Linux中的UDP通信
- Linux TCP/UDP编程
- linux udp封装函数
- 【Linux基础】UDP概述
- linux-UDP网络程序设计
- Linux socket编程:udp
- Linux网络编程-UDP
- linux c编程 UDP
- Linux UDP Port Test
- Linux UDP编程
- Linux UDP编程(1)
- linux udp详解总结
- linux下UDP编程
- Linux-6.4-UDP
- JAVA_WEB经典面试题
- handler进程与线程的基础知识
- c# 用反射实现winform界面动态存储理论知识
- 项目管理 笔记之三 —— 项目综合管理
- NetBIOS、Samba、CIFS概念及相关
- linux-UDP
- java编码 乱码解析
- struts2中json应用
- 托福考试总结——南京师范大学考点
- C语言函数:toupper
- c++ stl library 学习(4)
- WebView总结
- Android Lint Checks
- Flex走出低谷的关键: 打破Flex固有的定义