![]() |
1
4
尽可能避免多进程和多线程编程。那条路通向痛苦。使用事件驱动编程。对于您想要做的事情,事件驱动编程是
容易多了
,也会有同样的表现。在C中,两种主要的方法是进行事件驱动编程(与I/O相关)
下面是使用select的工作示例:
FD_SET用于创建要选择的文件描述符列表(从中获取事件)。在select成功返回(意味着有一个要处理的事件)之后,可以使用FD_ISSET查找导致事件的文件描述符。在您的例子中,您将有一个打开的套接字文件描述符,您将添加到集合中并进行适当的处理。 有用的文档包括以下手册页:
|
![]() |
2
2
你想同时监视插座和标准输入。如果这是正确的,请查看此处的select()系统调用: http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#select |
![]() |
3
-2
有一个叫做多线程的小东西。多线程(C++)完全依赖于操作系统或外部库。 如果您使用的是windows,那么可以使用“windows.h”中定义的beginthread()和endthread()。 它相当容易使用。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 6 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 7 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 7 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 7 月前 |