Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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++编写了Socket客户端服务器消息发送程序,工作正常。 现在我想在名称空间中运行客户机服务器。 我正在使用ubuntu 18.04 ip netns add vm1 ip link add macvlan1 link wlo1 type macvlan mode bridge ip link set macvlan1 netns vm1 ip netns exec vm1 ifconfig macvlan1 192.0.0.1_C++_Sockets_Namespaces_Client Server_Ubuntu 18.04 - Fatal编程技术网

在名称空间中使用套接字的服务器客户端 我用C++编写了Socket客户端服务器消息发送程序,工作正常。 现在我想在名称空间中运行客户机服务器。 我正在使用ubuntu 18.04 ip netns add vm1 ip link add macvlan1 link wlo1 type macvlan mode bridge ip link set macvlan1 netns vm1 ip netns exec vm1 ifconfig macvlan1 192.0.0.1

在名称空间中使用套接字的服务器客户端 我用C++编写了Socket客户端服务器消息发送程序,工作正常。 现在我想在名称空间中运行客户机服务器。 我正在使用ubuntu 18.04 ip netns add vm1 ip link add macvlan1 link wlo1 type macvlan mode bridge ip link set macvlan1 netns vm1 ip netns exec vm1 ifconfig macvlan1 192.0.0.1,c++,sockets,namespaces,client-server,ubuntu-18.04,C++,Sockets,Namespaces,Client Server,Ubuntu 18.04,server.cpp int main(){ int socket_desc,client_sock,c,read_size; struct sockaddr_in server,client; char client_message[1024]; socket_desc=socket(AF_INET , SOCK_STREAM , 0); if (socket_desc==-1){ cout<<"Could not

server.cpp

int main(){
    int socket_desc,client_sock,c,read_size;
    struct sockaddr_in server,client;
    char client_message[1024];
    socket_desc=socket(AF_INET , SOCK_STREAM , 0);
    if (socket_desc==-1){
        cout<<"Could not create socket\n";
        return 0;
    }
    cout<<"Socket created\n";
    server.sin_family=AF_INET;
    server.sin_addr.s_addr=INADDR_ANY;
    server.sin_port = htons(3999);
    if(bind(socket_desc,(struct sockaddr *)&server,sizeof(server))<0){
        perror("bind failed. Error");
        return 1;
    }
    cout<<"binding done\n";
    listen(socket_desc , 3);
    puts("Waiting for incoming connections...");
    c = sizeof(struct sockaddr_in);
    client_sock=accept(socket_desc,(struct sockaddr *)&client,(socklen_t*)&c);
    if (client_sock < 0){
        perror("accept failed");
        return 1;
    }
    cout<<"Connection Accepted\n";
现在在服务器端,它正在等待传入连接,而在客户端,套接字已经创建并卡在那里。 一段时间后,它会显示连接失败和连接超时。 我不熟悉名称空间,不知道哪里出了问题

int main(){
    int sock;
    struct sockaddr_in server;
    char message[1024],server_reply[1024];
    sock=socket(AF_INET,SOCK_STREAM,0);
    if (sock==-1){
        cout<<"Could not create socket\n";
    }
    cout<<"Socket created\n";

    server.sin_addr.s_addr = inet_addr("192.0.0.1");
    server.sin_family = AF_INET;
    server.sin_port = htons(3999);
    if (connect(sock,(struct sockaddr *)&server,sizeof(server))<0){
        perror("connect failed. Error");
        return 1;
    }
    cout<<"Connected\n";

ip netns exec vm1 ./server
ip netns exec vm1 ./client