我需要编写一个简单的客户端-服务器应用程序,它使用Unix数据报套接字。客户端可以在服务器请求时向服务器发送信息,也可以在自己的请求下从服务器接收信息。
我的想法是,一个线程将等待用户输入以确定我们要向服务器发送什么请求,另一个线程将只等待来自服务器的套接字消息,如果它是我们请求的消息,它将将其写入标准输出,如果是服务器请求线程将写入服务器请求的内容。我将使用互斥锁,以便两个线程不会同时向同一套接字写入。
我的问题是,如果一个线程从某个套接字读取数据,同时另一个线程正在使用相同的套接字发送数据,套接字会如何表现?这样安全吗?或者我也应该为这种情况使用互斥锁?