读书人

问下UDP客户端怎么编写接收消息

发布时间: 2012-06-15 19:37:05 作者: rapoo

问下UDP客户端如何编写接收消息
服务器端 我用了个消息模型

udpserversocket = socket(AF_INET,SOCK_DGRAM,0);

if ( udpserversocket == INVALID_SOCKET )
return;

sockaddr_in addr = {0};
addr.sin_family = AF_INET;
addr.sin_port = htons(6001);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");

int n_Ret = bind(udpserversocket,(sockaddr*)&addr,sizeof(sockaddr_in));
if ( SOCKET_ERROR == n_Ret )
{
closesocket(udpserversocket);
udpserversocket = INVALID_SOCKET;
return;
}


WSAAsyncSelect(udpserversocket,m_hWnd,WM_USER+1,FD_READ|FD_CLOSE);

服务端接收到消息处理
case FD_READ:
{
sockaddr_in fromaddr = {0};
int nSize = sizeof(fromaddr);

//WSAEMSGSIZE csTxt.GetBufferSetLength(4)

int nRecvedNum = 0;
nRecvedNum = recvfrom(udpserversocket,
csTxt.GetBufferSetLength(4096),
4096,0,
(sockaddr*)&fromaddr,&nSize);

我想发送给接收到的这个客户端消息 服务端应该怎么写
客户端呢 难道客户端跟服务端一样也得绑定个端口?





[解决办法]
哎, 一个比一个扯淡, 无语了.

服务端BIND在一个PORT提供服务, 客户端直接向服务端IP:PORT发消息就可以了, 客户端的内核会自动BIND一个LOCAL IP/PORT.

读书人网 >C++

热点推荐