尝试使应用程序连接并侦听端口以获取数据时,我收到此错误。
{{1}}
我正在尝试连接到端口1234,听取它并接受它来接收数据,但错误仍然存在。
此外,我正在尝试使用netcat进行测试,但只要nc在我指定的端口上运行,就会收到不同的错误。
由于
答案 0 :(得分:1)
int lis = listen(conn_s, SOMAXCONN);
fcntl(lis, F_SETFL, O_NONBLOCK);
while(1) {
conn_s = accept(lis, NULL, NULL);
listen()
不会返回套接字FD。它返回零或-1。因此,第二行是错误的,以下是accept()
调用。它应该是:
if (listen(conn_s, SOMAXCONN) == -1)
{
perror("listen");
return; // or whatever
}
fcntl(conn_s, F_SETFL, O_NONBLOCK);
while(1) {
int conn_c = accept(conn_s, NULL, NULL);
通过将conn_s
的结果存储到其中,请勿丢失accept()
。