13得票5回答
C语言,套接字编程:使用select()连接多个客户端到服务器

我想制作一个可以被多个客户端连接的服务器。以下是我的代码: 客户端:int main(int argc, char **argv) { struct sockaddr_in servaddr; int sock = socket(AF_INET, SOCK_STREAM, IPPR...

10得票3回答
如何在C语言中使用select()函数从键盘读取输入

我正在尝试使用select()读取键盘输入,但遇到了问题,我不知道如何从键盘读取并使用文件描述符来实现。有人告诉我要使用STDIN和STDIN_FILENO来解决这个问题,但我仍然感到困惑。 我该如何做?

8得票2回答
通过select()信号通知,但是在非阻塞套接字上使用recv()没有返回数据并且出现EAGAIN信号。

我已经从select()获得了用于读取的信号套接字,但是在使用recv调用时没有收到任何数据,而是返回-1,errno==EAGAIN。 我可以保证没有其他线程触及该套接字。 我认为这种行为是不正确的。如果发生来自另一端的后续关闭,我可以期望从recv返回值0(优雅关闭)或其他错误代码,但...