我正在考虑用 C 语言制作一个 tcp 客户端。 但在开始之前,我想听听您的一些建议。
客户端用于控制灯光和其他设备。
使用此客户端,我需要发送命令,但我也可以在有人关灯时接收事件。
仅使用套接字发送命令是没有问题的。 但同时我必须读取传入的包裹。
如何最好地解决这个问题? 我需要使用线程还是可以使用 libevent 之类的东西来解决这个问题?
大多数人如何实现这样的事情?
这个库应该尽可能地可移植。 (linux、unix、windows...)
(我不是在寻找代码,只是寻找最佳方法)
最佳答案
BSD套接字是双向的,您可以通过select(2)检查您的套接字是否有传入数据
- http://rhoden.id.au/doc/sockets2.html
- 或在SO中搜索“socket select”:https://stackoverflow.com/search?q=socket+select
恕我直言,使用 libevent 超出了您的目的。这很好,但要认识到它的威力还有很长的路要走。实际上libevent是select(2)或其改进的后继者epoll(2)等的包装器。
关于c - c中的tcp客户端发送和监听: concept,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9339915/