无法使用C编程与linux中的tcp ip - server客户端程序连接

时间:2014-03-22 07:58:09

标签: c tcp

  

这是我的tcp_server代码,请纠正我的错误。问题是我无法连接。

        int  tcp_server(unsigned int uiPort, unsigned int MaxConnect) 
       {
        #define MAX_SOCKETS 1000
        int isocket = -1;
        struct sockaddr_in  servaddr;
        tcp_init();
        if (MaxConnect == 0)
        MaxConnect = MAX_SOCKETS;
        isocket = socket(AF_INET, SOCK_STREAM, 0);
        if (isocket >= 0){
         memset(&servaddr, 0, sizeof(servaddr));    
         servaddr.sin_family = AF_INET;    
         servaddr.sin_addr.s_addr = htonl(INADDR_ANY);    
         servaddr.sin_port = htons(uiPort);    
         if( bind(isocket, (struct sockaddr*)&servaddr,   sizeof(servaddr)) == -1){
            tcp_close(isocket);
            isocket = -2;
         }else if( listen(isocket,MaxConnect ) == -1){
            tcp_close(isocket);
            isocket = -3;
         }
        }       
        return isocket;
        }

1 个答案:

答案 0 :(得分:0)

您已接受客户端套接字的位置。

SOCKET cli_addr;
size_t len = sizeof(cli_addr);
newsockfd = accept(servaddr, (struct sockaddr *)&cli_addr, 
                                &clilen);

然后在newsockfd上你需要进行读/写操作。

您可以参考我的教程https://www.youtube.com/watch?v=hvcUVYC46mU。但教程是关于WinSock的。