写了一个简单的聊天系统,用ip138提供的IP地址收不到消息,只能用127.0.0.1
服务端socket初始化代码://初始化套接字
SOCKADDR_IN addrSock;
addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSock.sin_family=AF_INET;
addrSock.sin_port=htons(5941);
m_socket=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,0);
//检查套接字初始化是否错误
if(INVALID_SOCKET==m_socket)
{
MessageBox("创建套接字失败!");
return FALSE;
}
//绑定端口和套接字
if(SOCKET_ERROR==bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR)))
{
MessageBox("绑定失败!");
return FALSE;
}
//创建异步套接字
if(SOCKET_ERROR==WSAAsyncSelect(m_socket,m_hWnd,UM_SOCK,FD_READ))
{
MessageBox("注册网络事件失败!");
return FALSE;
}
客户端socket初始化代码:
m_socket=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,0);
if(INVALID_SOCKET==m_socket)
{
MessageBox("创建套接字失败!");
return FALSE;
}
if(SOCKET_ERROR==WSAAsyncSelect(m_socket,m_hWnd,UM_SOCK,FD_READ))
{
MessageBox("注册网络事件失败!");
return FALSE;
}
前些天,我用delphi 写出来过。这个和你的程序没有关系。你一定有用路由,将路由映射到你IP上,外网的就可以用了。就是你那ip138的也可以用的。
页:
[1]