【发布时间】:2013-05-14 10:55:11
【问题描述】:
我有一个单服务器多客户端 udp 应用程序。有一个带有单个套接字 (socket#1) 的单个线程 (thread#1) 可以连续地从 client#1 接收数据。这个接收线程的任务是在它的套接字上不断地接收数据。
我在服务器应用程序 GUI 上有一个按钮,上面写着“向 Client#1 发送数据”。当按下这个按钮时,我希望我的接收线程暂停接收并在 socket#1 上发送一些数据,当数据发送时,继续接收。
如何做到这一点?如果我什至在按下按钮时 postthreadmessage() ,接收线程不会检查这些发布的消息,因为它总是在 while 循环中接收消息。它如何检查与按下的按钮对应的已发布消息?
编辑:另一个建议
如果我将套接字设置为“事件驱动”会怎样?即,每当套接字上有一些数据可供读取时,就会生成 FD_READ 事件并且我可以在套接字上读取,并且每当我想在套接字上写入一些数据时,我都会生成一个事件 FD_WanttoWrite,然后将数据写入套接字上。类似的事情可能吗?
(我知道 FD_READ,但是当我想在 Socket 上写东西时我不确定 FD_WanttoWrite)
【问题讨论】:
标签: c windows sockets winapi network-programming