两个线程可以同时使用同一个套接字吗?
例如,首先我打开一个表示 Android 客户端和 Windows 7 服务器之间连接的套接字。我想通过使用 DataOutputStream 发送一个文件大小的整数,然后在此之后我将使用 BufferedOutputStream 发送二进制文件,例如 pdf
服务器将获取客户端发送的大小,然后检查接收到的文件大小是否正确。它将发送整数、文件大小数字与接收到的文件的实际大小进行比较。如果有任何差异,服务器知道文件不完整,然后它将向客户端发送一条消息以请求再次发送文件。
我有一个应用程序,其中大约 5% 的时间文件被接收为不完整。它比实际尺寸小。解决此问题的唯一方法是在文件不完整时再次重新发送文件
如果我发送文件,则需要打开一个端口并等待从服务器接收一条消息,告诉客户端文件是否已接收完成或必须重新发送。
那么是否可以让一个线程使用套接字并侦听任何消息并在另一个线程上发送消息。因此,如果在发送消息的同时从服务器接收到消息。
很明显,只使用一个线程会阻塞,并且需要两个线程,但是使用同一个套接字可能会出现问题吗?