【转】C++ Socket UDP "Hello World!"
2010-11-29 13:45
351 查看
////////////////////////////////////////////////////////////////////////// // UDPClient.cpp #include <stdio.h> #include <WINSOCK2.H> #pragma comment(lib,"WS2_32.lib") #define BUF_SIZE 64 int main(void) { WSADATA wsd; SOCKET s; // 初始化套接字动态库 if(WSAStartup(MAKEWORD(2,2),&wsd) != 0) { printf("WSAStartup failed !\n"); return 1; } // 创建套接字 s = socket(AF_INET,SOCK_DGRAM,0); if(s == INVALID_SOCKET) { printf("socket() failed, Error Code:%d\n",WSAGetLastError()); WSACleanup(); return 1; } char buf[BUF_SIZE]; // 接受数据 SOCKADDR_IN servAddr; // 服务器套接字地址 SOCKET sockClient = socket(AF_INET,SOCK_DGRAM,0); int nRet; ZeroMemory(buf,BUF_SIZE); strcpy(buf,"UDP Hello World !"); // 设置服务器地址 servAddr.sin_family = AF_INET; servAddr.sin_addr.S_un.S_addr = inet_addr("192.168.1.254"); servAddr.sin_port = htons(5000); // 向服务器发送数据 int nServAddLen = sizeof(servAddr); if(sendto(sockClient,buf,BUF_SIZE,0,(sockaddr *)&servAddr,nServAddLen) == SOCKET_ERROR) { printf("recvfrom() failed:%d\n",WSAGetLastError()); closesocket(s); WSACleanup(); return 1; } nRet = recvfrom(sockClient,buf,BUF_SIZE,0,(sockaddr *)&servAddr,&nServAddLen); if(SOCKET_ERROR == nRet) { printf("recvfrom failed !\n"); closesocket(s); WSACleanup(); return -1; } // 打印来自服务端发送来的数据 printf("Recv From Server:%s\n",buf); closesocket(s); WSACleanup(); return 0; }
相关文章推荐
- C++ Socket UDP "Hello World!"
- C++ Socket UDP "Hello World!"
- C++ Socket TCP "Hello World!"
- Linux "Hello World !"
- 初识用UDP协议做的windows窗口聊天程序---此处是双向的"异步"多线程对话框通信.
- UDP网络编程时出现:Exception in thread "main" java.io.EOFException异常
- windows 下 c++ socket udp 广播
- Let's say "Hello World!"
- UDP"打洞"原理
- Lesson: The "Hello World!" Application
- RabbitMQ学习笔记1-"Hello World!"simple模型
- "Hello world!"团队第八次会议
- SpringBoot的RabbitMQ消息队列: 二、第一模式"Hello World!"
- SpringBoot的RabbitMQ消息队列: 二、第一模式"Hello World!"
- 使用jgraph的“Hello world!"
- C++ Socket 网络编程UDP的封装
- "Hello world!"团队第一次会议
- C++ Socket UDP范例
- UDP"打洞"原理
- TCP和UDP的"保护消息边界"