问下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.