这是我的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;
}
最佳答案
您已接受客户端套接字的位置。
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的。