我正在编写一个C语言网络服务器,它将两个客户端配对并允许它们相互发送消息。
目前,服务器中每个客户端都有自己的线程,在线程中我有一个循环,基本上是
但我的问题是,我不确定通过服务器将消息从一个客户端传输到另一个客户端的最佳方法。
我认为我最大的问题是
有没有办法解决这个问题?我的最初想法是为读取客户端和写入客户端分别创建一个线程,但如果read在一个线程中阻塞,然后我尝试向同一文件描述符写入,这是否会引起问题?
感激任何帮助!! :)
目前,服务器中每个客户端都有自己的线程,在线程中我有一个循环,基本上是
while((numBytesRead = read(fd, buffer, 1024)) > 0)
。这很好用,我能够接收消息并将其回显到客户端。但我的问题是,我不确定通过服务器将消息从一个客户端传输到另一个客户端的最佳方法。
我认为我最大的问题是
read()
会阻塞,所以在客户端发送一些文本到服务器以使read停止阻塞之前,我将无法向客户端发送消息。有没有办法解决这个问题?我的最初想法是为读取客户端和写入客户端分别创建一个线程,但如果read在一个线程中阻塞,然后我尝试向同一文件描述符写入,这是否会引起问题?
感激任何帮助!! :)