我用单机(服务器和客户端再同一台计算机上)可以完成服务器与客户端的通信。现在想要在多台计算机上实现,把其中一台当成服务器,其他的当成客户端。但是运行后,客户端连接不上服务器。我只是把单机的回路地址:127.0.0.1改成了各自计算机的IP地址(例如192.168.11.10)。客户端的端口号和服务器保持一致。这是什么原因呢?防火墙我已经关了。这是我的部分代码:
server:#define PORT 4140
serverSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if (serverSocket==INVALID_SOCKET)
{
WSACleanup();
MessageBox(L"Create Socket Failed",0,0);
}SOCKADDR_IN serverIP; 
serverIP.sin_family=AF_INET;
serverIP.sin_port=htons(PORT);
serverIP.sin_addr.s_addr = htonl(INADDR_ANY);
//memset(serverIP.sin_zero,0,sizeof(serverIP.sin_zero));//绑定
ret = bind(serverSocket,(struct sockaddr*)&serverIP,sizeof(serverIP));
if (ret==SOCKET_ERROR)
{
MessageBox(L"Bind Error",0,0);
}
//服务器监听
int ret1 = listen(serverSocket,10)client:#define PORT 4140
#define IP_ADDR "192.168.11.126"
clientSocket=socket(AF_INET,SOCK_STREAM,0);
if(clientSocket==INVALID_SOCKET)
{
MessageBox(L"socket Failed",0,0);
return -1;
}
SOCKADDR_IN serverAddr;
serverAddr.sin_family=AF_INET;
serverAddr.sin_addr.s_addr=inet_addr(IP_ADDR);
serverAddr.sin_port=htons(PORT);int ret = connect(clientSocket,(struct sockaddr*)&serverAddr,sizeof(serverAddr));
if(ret==SOCKET_ERROR)
{
MessageBox(L"Connect Failed",0,0);
return -1;
}