Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;套接字客户端到python服务器未创建连接_C++_Sockets_Stream Socket Client - Fatal编程技术网

C++ C++;套接字客户端到python服务器未创建连接

C++ C++;套接字客户端到python服务器未创建连接,c++,sockets,stream-socket-client,C++,Sockets,Stream Socket Client,我正在尝试为Python服务器创建C++套接字客户端。 因为我是C++新手,所以在创建C++客户端之前,我用Python客户端检查了Python套接字服务器。在创建和运行C++客户端之后,服务器没有得到任何连接< /p> server.py def start_listener(): ip=“0.0.0.0” 端口=4444 服务器=socket.socket(socket.AF\u INET,socket.SOCK\u流) 尝试: #捆绑 服务器绑定((ip,端口)) 服务器。听(3) 打印(

我正在尝试为Python服务器创建C++套接字客户端。 因为我是C++新手,所以在创建C++客户端之前,我用Python客户端检查了Python套接字服务器。在创建和运行C++客户端之后,服务器没有得到任何连接< /p> server.py

def start_listener():
ip=“0.0.0.0”
端口=4444
服务器=socket.socket(socket.AF\u INET,socket.SOCK\u流)
尝试:
#捆绑
服务器绑定((ip,端口))
服务器。听(3)
打印(“[+]服务器绑定在%s:%d”%(ip,端口))
除了socket.error作为错误:
打印(“[!]无法在%s上绑定:%d”%(ip,端口))
#等待连接并处理它们
尽管如此:
打印(“等待连接…”)
#等待部分
连接,addr=server.accept()
打印(“[+]从%s接受的连接:%d”%(地址[0],地址[1]))
data=connection.recv(2000).decode()
打印(数据)
启动侦听器()
ClientSocket.cpp:

#包括“ClientSocket.h”
#包括
ClientSocket::ClientSocket(字符串ip,int端口){
插座ip=ip;
套接字\端口=端口;
}
void ClientSocket::CreateSession(){
ClientSocket::sock=socket(AF\u INET,sock\u STREAM,0);
if(ClientSocket::sock<0){
不能添加

在创建客户端套接字之前

所以它应该是这样的:

void CreateSession() {
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2, 0), &wsaData);
    this->sock = socket(AF_INET, SOCK_STREAM, 0);

    if (this->sock < 0) {
        cout << "[!] Unable to create socket" << endl;
    }
        struct sockaddr_in serv_addr;
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = inet_addr((ClientSocket::socket_ip).c_str());
    serv_addr.sin_port = htons(ClientSocket::socket_port);

    if (connect(this->sock, (SOCKADDR*)&serv_addr, sizeof(sockaddr)) == SOCKET_ERROR) {
        cout << "[!] Unable to connect to remote socket" << endl;
    }
}
void CreateSession(){
WSADATA WSADATA;
WSAStartup(MAKEWORD(2,0)和wsaData);
这个->sock=socket(AF\u INET,sock\u STREAM,0);
如果(此->袜子<0){

CUT你可以添加Python服务器代码吗?我添加了Python服务器代码@ HyyyLeBeReRay-Excel,但是C++没有链接到我……但是尝试将Python文件中的IP转发到“127.0.0.1”@ GlieAtesto:只需确定:客户端和服务器在同一物理和逻辑机器上运行(即,不在不同的VM等)上运行。?另外,请提供实际错误原因,即使用WSAGetLastError。由于您更熟悉这一点,您是否使用小型Python客户端进行了尝试?是的,但如果vm的网络适配器设置正确,则应该可以。现在添加代码后,客户端“启用创建连接”但在服务器端,他说他无法获得任何连接。它对我有效,请验证您是否链接到正确版本的winsock,并带有“#pragma comment(lib,“Ws2_32.lib”)”(可能与此有关,idk)为什么服务器在从客户端强制关闭连接后打印错误?它与WSAStartup有关?服务器在从客户端强制关闭连接时打印错误,因为它试图从不再存在的连接接收数据。
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 0), &wsaData);
void CreateSession() {
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2, 0), &wsaData);
    this->sock = socket(AF_INET, SOCK_STREAM, 0);

    if (this->sock < 0) {
        cout << "[!] Unable to create socket" << endl;
    }
        struct sockaddr_in serv_addr;
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = inet_addr((ClientSocket::socket_ip).c_str());
    serv_addr.sin_port = htons(ClientSocket::socket_port);

    if (connect(this->sock, (SOCKADDR*)&serv_addr, sizeof(sockaddr)) == SOCKET_ERROR) {
        cout << "[!] Unable to connect to remote socket" << endl;
    }
}