Socket编程 简易测试socket UDP
来源:互联网 发布:怎么查找淘宝评论过的 编辑:程序博客网 时间:2024/03/29 03:10
简易测试程序,用于测试使用socket 实现UDP.
程序结构简单,仅有相关函数的使用.旨在明确新手对于socket的学习方向.
服务器程序:
// SocketUDPSrv.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <winsock2.h>#include <windows.h>#include <iostream>using namespace std;#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){//Initialize ws2_32.libWSADATA wsaData;WORD wVerionRequested;int ret;wVerionRequested = MAKEWORD(2,2);ret = WSAStartup(wVerionRequested,&wsaData);if (ret == SOCKET_ERROR){::MessageBox(NULL,"WSAStartup Error","demon",MB_OK | MB_ICONERROR);return -1;}cout << "Initialize ws2_32.lib...done..." << endl;SOCKET srv_socket;srv_socket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);if (srv_socket == SOCKET_ERROR){::MessageBox(NULL,"socket Error","demon",MB_OK | MB_ICONERROR);return -1;}cout << "create socket...done..." << endl;sockaddr_in srv_addr;srv_addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);srv_addr.sin_family = AF_INET;srv_addr.sin_port = htons(6000);ret = bind(srv_socket,(SOCKADDR *)&srv_addr,sizeof(srv_addr));if (ret == SOCKET_ERROR){cout << WSAGetLastError()<<endl;::MessageBox(NULL,"bind Error","demon",MB_OK | MB_ICONERROR);return -1;}cout << "bind...done..." << endl;cout << "receive data...";char recv_buf[256];sockaddr_in from_addr;int fromlen = sizeof(SOCKADDR);//ret = recvfrom(srv_socket,recv_buf,256,0,(SOCKADDR *)&from_addr,&fromlen);int i = 0;while(i < 3){//ret = recvfrom(srv_socket,recv_buf,256,0,NULL,NULL);ret = recvfrom(srv_socket,recv_buf,256,0,(SOCKADDR *)&from_addr,&fromlen);if (ret == SOCKET_ERROR){cout << WSAGetLastError()<<endl;::MessageBox(NULL,"recvfrom Error","demon",MB_OK | MB_ICONERROR);return -1;}cout << recv_buf << endl;i++;}cout <<"done...\n";closesocket(srv_socket);WSACleanup();return 0;}
客户端程序:
// SocketUDPClient.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <winsock2.h>#include <windows.h>#include <iostream>using namespace std;#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){WSADATA wsaData;WORD wVerionRequested;int ret;wVerionRequested = MAKEWORD(2,2);ret = WSAStartup(wVerionRequested,&wsaData);if (ret == SOCKET_ERROR){::MessageBox(NULL,"WSAStartup Error","demon",MB_OK | MB_ICONERROR);return -1;}SOCKET client_socket;client_socket = socket(AF_INET,SOCK_DGRAM,0);if (client_socket == SOCKET_ERROR){::MessageBox(NULL,"socket Error","demon",MB_OK | MB_ICONERROR);return -1;}//²»ÐèÒªbind//·þÎñÆ÷¶ËµÄµØÖ·ºÍ¶Ë¿Úsockaddr_in addrSrv;addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);char send_buf[256];sprintf(send_buf,"Hello.....");ret = sendto(client_socket,send_buf,strlen(send_buf) + 1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));if (ret == SOCKET_ERROR){cout << WSAGetLastError() << endl;::MessageBox(NULL,"sendto Error","demon",MB_OK | MB_ICONERROR);return -1;}cout << "done..." << endl;closesocket(client_socket);WSACleanup();return 0;}
- Socket编程 简易测试socket UDP
- Socket编程 简易测试socket TCP程序
- C#下socket编程:udp协议测试
- 【Socket编程】Python用udp实现简易ping
- Socket 连接简易编程
- socket udp编程理论
- socket的udp编程
- Socket UDP编程
- UDP socket编程
- TCP、UDP、SOCKET编程
- Linux socket编程:udp
- UDP Socket编程
- python socket编程 UDP
- Socket编程UDP/TCP
- Socket编程-UDP协议
- Socket编程--TCP/UDP
- UDP Socket编程
- Java UDP Socket编程
- cuda数组的拷贝
- OpenCV检测直线
- C++运算符重载
- hdoj_2586How far away ? && poj_1986Distance Queries
- 编程多年的一些疑问
- Socket编程 简易测试socket UDP
- 多线程删除注册的事件
- HDU 4325 离散化 + 线段树
- 题目1075:斐波那契数列
- ubuntu12.04建立交叉编译环境,bin/.arm-none-linux-gnueabi-gcc: not found
- 反射
- Android中消息系统模型和Handler Looper
- c#文件读写相关类介绍
- Android基础 - No Launcher activity found!