我想设计一个监听 x 客户端的 TCP 服务器。X 很小,比如大约 10 并且它是固定的。客户可以随时连接。一旦建立连接(accept()
成功),我为每个客户端生成一个线程并处理它们。
在这个handle()
函数中,我想向客户端发送命令并相应地接收数据。
问题: 一旦从服务器发送命令,客户端就会通过连续发送数据来响应。如何将命令发送回客户端以停止它?与当前代码一样,我正在循环接收来自客户端的数据。
- 我不知道如何在接收过程中从服务器线程发送命令,比如一旦建立连接,我是否需要另一个线程(发送 cmds)?
- 如何不断地从客户端接收数据并同时发送命令?根据用户输入向每个客户端发送命令。(假设用户希望 client1 开始发送数据,那么我必须向 client1 发送 START。并且用户希望停止 client1 发送,所以我需要向 client1 发送 STOP 如果用户希望将 data3 cmd 发送到客户端 4 然后发送命令 DATA3 到 client4 等,这种情况下如何识别客户端?基本上形成一个小协议**
下面的代码在我可以监听套接字和客户端连接并发送数据的地方工作。我不确定如何将用户输入的命令发送到正确的客户端(比如 client4)并同时接收。