gpt4 book ai didi

c - 在 UDP 套接字上监听,同时还使用 C 从标准输入接收输入

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:35 25 4
gpt4 key购买 nike

所以我试图用 C 编写一个程序,它可以通过 UDP 从另一台计算机接收数据包,同时还能够在有人在命令行中输入“退出”时停止监听。我的问题是 fgets 和 recvfrom 都在等待,直到发生某些事情继续进行,所以如果我当前正在执行 fgets,我的程序将忽略传入消息,如果我当前正在等待消息,它将忽略终端的输入。有什么办法可以同时完成这两项工作吗?

相关代码:

while (strcmp(sendline, "quit")!=0) {

fgets(sendline,MAXLINE,stdin);

if((nbytes=recvfrom(sd,recvline,1+strlen(sendline),0,
(struct sockaddr*)&sad, &fromlen))<0){
perror("recvfrom");
exit(1);
}
}

最佳答案

如果您切换到使用低级 IO(从 fd 0 读取而不是从 stdin 读取 fread),则可以使用 select() 函数在 fd 或套接字上的数据准备就绪时得到通知。

关于c - 在 UDP 套接字上监听,同时还使用 C 从标准输入接收输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47875682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com