udpsrv.cpp

来自「介绍一套VC++深入详解」· C++ 代码 · 共 48 行

CPP
48
字号
#include <Winsock2.h>
#include <stdio.h>

void main()
{
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;
	
	wVersionRequested = MAKEWORD( 1, 1 );
	
	err = WSAStartup( wVersionRequested, &wsaData );
	if ( err != 0 ) {
		return;
	}
	

	if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
		WSACleanup( );
		return; 
	}

	SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
	SOCKADDR_IN addrSrv;
	addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
	addrSrv.sin_family=AF_INET;
	addrSrv.sin_port=htons(12345);

	bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

	int ret=WSAGetLastError();
	printf("%d\n",ret);

	SOCKADDR_IN addrClient;
	int len=sizeof(SOCKADDR);
	char recvBuf[100];

	memset(recvBuf,0,100);

	recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
    ret=WSAGetLastError();
	printf("%d\n",ret);
	printf("%s\n",recvBuf);

	closesocket(sockSrv);
	WSACleanup();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?