69,369
社区成员
发帖
与我相关
我的任务
分享
class UDPNet
{
private:
WORD wVersionRequested;
WSADATA wsaData;
int err;
SOCKADDR_IN addrSrv;
SOCKADDR_IN addrClient;
SOCKET sockSrv;
int len,RecvLen;
public:
void Open(int SendPort,int RecvPort);
void Send(TCHAR Buffer[200],int SendLen);
int Recv(TCHAR Recv[200]);
void Close();
};
void UDPNet::Open(int SendPort,int RecvPort)
{
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
MessageBox(NULL,"网络协议加载失败","",0);
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
MessageBox(NULL,"网络协议加载失败","",0);
}
sockSrv=socket(AF_INET,SOCK_DGRAM,0);//使用套接字
len=sizeof(SOCKADDR);
sockSrv=socket(AF_INET,SOCK_DGRAM,0);
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(RecvPort);
addrClient.sin_addr.S_un.S_addr=inet_addr("192.168.1.105");
addrClient.sin_family=AF_INET;
addrClient.sin_port=htons(SendPort);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
};
void UDPNet::Send(TCHAR Buffer[],int SendLen)
{
sendto(sockSrv,Buffer,SendLen,0,(SOCKADDR*)&addrClient,
sizeof(SOCKADDR));
};
int UDPNet::Recv(TCHAR Recv[])
{
RecvLen=recvfrom(sockSrv,Recv,256,0,(SOCKADDR*)&addrSrv,&len);
return RecvLen;
};
void UDPNet::Close()
{
closesocket(sockSrv);
WSACleanup();
};