windows网络编程(三)——UDP
来源:互联网 发布:37轩辕剑神臂进阶数据 编辑:程序博客网 时间:2024/06/05 16:55
UDP 无listen(),accept()
使用sentto(),recvfrom(),
无连接,但可通过connect()提高传输效率。
服务器端
#include <stdio.h>#include <winsock2.h>#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll#define BUF_SIZE 100int main(){ WSADATA wsaData; WSAStartup( MAKEWORD(2, 2), &wsaData); //创建套接字 SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); //绑定套接字 sockaddr_in servAddr; memset(&servAddr, 0, sizeof(servAddr)); //每个字节都用0填充 servAddr.sin_family = PF_INET; //使用IPv4地址 servAddr.sin_addr.s_addr = htonl(INADDR_ANY); //自动获取IP地址 servAddr.sin_port = htons(1234); //端口 bind(sock, (SOCKADDR*)&servAddr, sizeof(SOCKADDR)); //接收客户端请求 SOCKADDR clntAddr; //客户端地址信息 int nSize = sizeof(SOCKADDR); char buffer[BUF_SIZE]; //缓冲区 while(1){ int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &clntAddr, &nSize); sendto(sock, buffer, strLen, 0, &clntAddr, nSize); } closesocket(sock); WSACleanup(); return 0;}
客户端
#include <stdio.h>#include <WinSock2.h>#pragma comment(lib, "ws2_32.lib") //加载 ws2_32.dll#define BUF_SIZE 100int main(){ //初始化DLL WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); //创建套接字 SOCKET sock = socket(PF_INET, SOCK_DGRAM, 0); //服务器地址信息 sockaddr_in servAddr; memset(&servAddr, 0, sizeof(servAddr)); //每个字节都用0填充 servAddr.sin_family = PF_INET; servAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); servAddr.sin_port = htons(1234); //不断获取用户输入并发送给服务器,然后接受服务器数据 sockaddr fromAddr; int addrLen = sizeof(fromAddr); while(1){ char buffer[BUF_SIZE] = {0}; printf("Input a string: "); gets(buffer); sendto(sock, buffer, strlen(buffer), 0, (struct sockaddr*)&servAddr, sizeof(servAddr)); int strLen = recvfrom(sock, buffer, BUF_SIZE, 0, &fromAddr, &addrLen); buffer[strLen] = 0; printf("Message form server: %s\n", buffer); } closesocket(sock); WSACleanup(); return 0;}
阅读全文
0 0
- windows网络编程(三)——UDP
- linux网络编程(三)——UDP编程
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- 嵌入式 Linux网络编程(三)——UDP编程模型
- 网络编程基础(三)UDP
- Windows网络编程 — UDP完成端口的实现
- Windows网络编程(TCP/UDP)
- UNIX网络编程笔记(6)—UDP网络编程
- Java学习—网络编程(UDP)
- 网络编程(2)—UDP
- [网络编程]——UDP
- 网络编程——UDP
- 网络编程(三) UDP报头及编程
- Windows Socket 网络编程(三) —— Windows Sockets程序设计
- Windows Socket 网络编程(三) —— Windows Sockets程序设计
- Windows Socket 网络编程(三) —— Windows Sockets程序设计
- Ubuntu 16.04 Exception: tostring() has been removed. Please call tobytes() instead.
- MySQL高可用方案选型参考
- 洛谷 P1018 乘积最大(NOIp2000提高组第二题)
- Unicode 与 String字符串之间的相互转换
- gridview、listview适配器布局中带有checkbox实现的列表 checkbox只能有一项选中
- windows网络编程(三)——UDP
- Centos下ftp的搭建
- redis windows下的环境搭建
- 欧姆龙PLC连接WINCC通讯
- java实现打印功能
- JSP中include指令和include动作的区别
- 排序问题
- Java web之四session
- ThinkAndroid框架简介