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

fusu

我正在尝试为python服务器创建C ++套接字客户端。因为在创建C ++客户端之前我是C ++的新手,所以我检查了python套接字服务器是否带有python客户端。创建并运行C ++客户端后,服务器未获得任何连接

server.py

def start_listener():
    ip = "0.0.0.0"
    port = 4444
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        # Tying to bind
        server.bind((ip, port))
        server.listen(3)
        print("[+] Server bind on %s:%d" %(ip,port))
    except socket.error as error:
        print("[!] Unable to bind on %s:%d" %(ip,port))

    # Waiting for connections and handle them
    while True:
            print("Wating for connections...")
            # Waiting part
            connenction, addr = server.accept()
            print("[+] Accecpted connection from %s:%d" % (addr[0],addr[1]))
            data = connenction.recv(2000).decode()
            print(data)

start_listener()

ClientSocket.cpp:

#include "ClientSocket.h"
#include <iostream>

ClientSocket::ClientSocket(string ip, int port) {
    socket_ip = ip;
    socket_port = port;
}

void ClientSocket::CreateSession(){
    ClientSocket::sock = socket(AF_INET, SOCK_STREAM, 0);
    if(ClientSocket::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(ClientSocket::sock, (SOCKADDR *)&serv_addr ,sizeof(sockaddr)) < 0){
        cout << "[!] Unable to connect to remote socket" << endl;
    }
}

ClientSocket.h

#include <string>
#include <list>
#include <winsock2.h>
#include <Ws2tcpip.h>

using namespace std;

#ifndef SOCKET_H
#define SOCKET_H

class ClientSocket {
    private:
        string socket_ip;
        int socket_port;
        SOCKET sock;
    public:
        ClientSocket(string ip, int port);
        void PrintSocket();
        void CreateSession();
        void SendData(string data);
};

#endif // SOCKET_H

main.cpp

#include "ClientSocket.h"

using namespace std;

int main() {
    ClientSocket clientsocket ("127.0.0.1", 4444);
    clientsocket.CreateSession();
    return 0;
}

输出

[!] Unable to connect to remote socket

包含<errno.h>并打印错误后,其打印无错误

极地笛卡尔

WSADATA wsaData;
WSAStartup(MAKEWORD(2, 0), &wsaData);

在创建客户端套接字以初始化winsock2之前

所以它应该看起来像这样:

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;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C服务器-Python客户端。拒绝连接

C ++套接字-服务器不接受多个客户端(Linux)

使用C中的套接字将文件从客户端发送到服务器

套接字编程:C语言中的UDP客户端-服务器

C#客户端/服务器套接字在断开连接后将不会再次连接

C#中的异步套接字服务器,通过套接字服务器进行客户端到客户端的通信

使用套接字将数据从Python(客户端)发送到C ++(服务器)数组

通过套接字从C ++服务器向Python客户端发送数据时出现问题

C ++套接字服务器不接受任何客户端/客户端将无法连接

在C中运行客户端和服务器套接字连接-带线程

C#Xamarin UWP / Android服务器-客户端套接字TCP无法正确连接

C#UDP套接字客户端和服务器

C#TCP套接字服务器客户端连接

C ++套接字客户端/服务器服务器不响应客户端

无法从Java套接字服务器接收数据到C套接字客户端

将输入从C套接字客户端读取到Java套接字服务器

服务器无法通过C中的套接字向客户端发送消息

客户端未与服务器C连接(套接字编程)

PHP客户端套接字与C#套接字服务器的连接

C套接字客户端/服务器pthreads服务器广播

Unix域套接字C服务器和Python客户端

通过套接字将Java客户端中的int写入c服务器

C#-套接字:创建服务器和客户端

C posix套接字,无法从客户端向服务器发送数据

C TCP/IP 套接字:如何将客户端套接字的输入同步到服务器套接字以交替进行

客户端断开连接后,C 套接字 TCP 服务器出现故障

C服务器套接字拒绝python客户端的连接

我可以使用 python 服务器而不是 C++ 客户端建立 tcp/ip 套接字吗?

C客户端套接字不输出/连接到tcp服务器