socket编程之UDP(windows环境下C++实现)
2017-06-21 15:15
891 查看
以下是最基础的UDP服务端与客户端源代码,实现客户端发送数据,服务器接收数据的功能。
运行结果:
服务端源代码
#include "stdafx.h" #include<WinSock2.h> #include<iostream> using namespace std; #pragma comment(lib,"ws2_32.lib") int _tmain(int argc, _TCHAR* argv[]) { //初始化socket资源 WSADATA WSAData; WORD sockVersion=MAKEWORD(2,2); if(WSAStartup(sockVersion,&WSAData)!=0) return 0; SOCKET serSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); //创建服务器socket if(INVALID_SOCKET==serSocket) { cout<<"socket error!"; return 0; } //设置传输协议、端口以及目的地址 sockaddr_in serAddr; serAddr.sin_family=AF_INET; serAddr.sin_port=htons(8888); serAddr.sin_addr.S_un.S_addr=INADDR_ANY; if(bind(serSocket,(sockaddr*)&serAddr,sizeof(serAddr))==SOCKET_ERROR) //将socket绑定地址 { cout<<"bind error"; closesocket(serSocket); return 0; } sockaddr_in clientAddr; int iAddrlen=sizeof(clientAddr); char buff[1024]; //建立接收缓存字节数组 while(true) { memset(buff,0,1024); //清空接收缓存数组 //开始接收数据 int len=recvfrom(serSocket,buff,1024,0,(sockaddr*)&clientAddr,&iAddrlen); if(len>0) { cout<<"客户端地址:"<<inet_ntoa(clientAddr.sin_addr)<<endl; cout<<buff; // sendto(serSocket,buff,1024,0,(sockaddr*)&clientAddr,iAddrlen); } } closesocket(serSocket); //关闭socket WSACleanup(); return 0; }
客户端源代码
#include "stdafx.h" #include<WinSock2.h> #include<iostream> using namespace std; #pragma comment(lib,"ws2_32.lib") int _tmain(int argc, _TCHAR* argv[]) { WSADATA WSAData; WORD sockVersion=MAKEWORD(2,2); if(WSAStartup(sockVersion,&WSAData)!=0) return 0; SOCKET clientSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); if(INVALID_SOCKET==clientSocket) { cout<<"socket error!"; return 0; } sockaddr_in dstAddr; dstAddr.sin_family=AF_INET; dstAddr.sin_port=htons(8888); dstAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); const char* sendData="来自客户端的数据包。"; sendto(clientSocket,sendData,strlen(sendData),0,(sockaddr*)&dstAddr,sizeof(dstAddr)); closesocket(clientSocket); WSACleanup(); return 0; }
运行结果:
相关文章推荐
- [置顶] windows环境下用c++实现socket编程
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP/UDP Socket编程 C/C++实现(Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- CP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- CP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP socket编程 C/C++实现(windows platform SDK)
- UDP Socket编程 C/C++实现
- socket编程之组播实现(windows下c++实现)
- linux下C/C++网络编程基本:socket实现tcp和udp的例子
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP windows下socket编程实例
- UNIX环境高级编程学习之第十六章网络IPC:套接字 - 简单UDP Socket 通信
- Windows环境下实现原始UDP数据包发送
- C/C++实现基于UDP的网络编程
- windows环境下Socket编程的几种模式