客户端无法连接到LAN中的服务器程序

Client can not connect to the server program in the LAN

本文关键字:服务器 程序 LAN 连接 客户端      更新时间:2023-10-16

我在c 中有此类构造函数:

SocketServer::SocketServer(int port)
{
    this->port=port;
WSAStartup(MAKEWORD(2,0), &WSAData);
server = socket(AF_INET, SOCK_STREAM, 0);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
bind(server, (SOCKADDR *)&addr, sizeof(addr));
}

端口号的客户端应用程序。5555无法连接到LAN网络中另一台PC上的服务器程序。我尝试了不同的端口号。也。如何解决这个问题?错误消息是:

Error while connecting

:这是client.cpp:

 #include <iostream>
#include <fstream>
#include "SocketClient.h"
using namespace std;
void onError(errorStruct *e)
{
    cout << e->message << endl;
}
int main()
{
    int port;
    cout<<"Enter a port : ";
    cin>>port;
    SocketClient client("127.0.0.1", port);
    client.setErrorCallback(onError);
   client.connect();
string str;
while(1)
{
    cout << ">";
    getline(cin, str);
    client.send(str);
}
client.close();
}

编辑2:socketClient

SocketClient::SocketClient(std::string ip, int port)
{
    this->ip=ip;
    this->port=port;
    this->connected=false;
    initParameters();
    initSocket(ip, port);
}
void SocketClient::initSocket(std::string ip, int port)
{
    WSAStartup(MAKEWORD(2,0), &WSAData);
    this->socket = WINSOCK_API_LINKAGE::socket(AF_INET, SOCK_STREAM, 0);
    this->addr.sin_addr.s_addr = inet_addr(ip.c_str());
    this->addr.sin_family = AF_INET;
    this->addr.sin_port = htons(port);
}
void SocketClient::initParameters()
{
    this->bytes_for_package_size=16;
    this->size_of_packages=2048;
    this->callback=NULL;
    this->callbackError=NULL;
    this->thread_started=false;
    this->errorWhileReceiving=false;
    this->errorWhileSending=false;
}

我想如果服务器和客户端都在同一台计算机上,您的系统正常工作?

在您的客户端代码中,您有行

SocketClient client("127.0.0.1", port);

您尚未给出SocketClient的代码,但我想这是服务器的地址和端口?如果是这样,那么您的问题是您需要提供服务器的IP地址:127.0.0.1localhost this Computer。