同步多套接字客户端澄清

本文关键字:客户端 套接字 同步 | 更新日期: 2023-09-27 18:28:57

我将创建多个同步客户端。我需要一些关于下面代码的解释。当我创建一个像下面这样的套接字并调用connect时,网络级别发生了什么。

我相信,当我们创建一个套接字和调用连接时,TCP/IP连接是客户端套接字和服务器套接字之间的隧道。

一旦这个发送器(套接字)连接到服务器,那个客户端&服务器之间将有一个唯一的隧道。如果我创建另一个客户端,它们之间将有另一个唯一的隧道。

如果我们遇到错误,即客户端没有连接,我们总是应该使用现有的套接字(发送方)重新连接,然后我们将访问与我们相同的数据/连接。我们不应该创建一个新的套接字,然后我们将有一个新隧道,我们将丢失以前的连接和数据。

Socket sender = new Socket(AddressFamily.InterNetwork,
                              SocketType.Stream, ProtocolType.Tcp );
sender.Connect(remoteEndpoint)

如果我错了,请澄清。

同步多套接字客户端澄清

您所说的隧道实际上被称为连接。断开的连接无法恢复。数据丢失是意料之中的事。

当您重新使用现有的套接字对象进行连接时,您正在创建一个新的连接。(我)不建议重用套接字对象,因为这会令人困惑。

注意,TCP不知道套接字是什么。规范中不包含这个词。套接字是操作系统级别的东西。