同步多插槽客户端澄清

时间:2014-11-02 14:49:19

标签: c# sockets tcpclient tcp-ip

我打算创建多个同步客户端。我需要一些关于下面代码的解释。 当我创建一个如下所示的套接字并调用connect在网络级别发生的事情时。

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

一旦此发件人(套接字)与服务器连接,该客户端&服务器将在它们之间具有唯一的隧道。 如果我创建另一个客户端,它们之间将有另一个独特的隧道。

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

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

请澄清我是否错了。

1 个答案:

答案 0 :(得分:1)

你所谓的隧道实际上叫做连接。断开的连接无法恢复。数据丢失是可以预期的。

当您再次使用现有套接字对象进行连接时,您将创建一个新连接。不建议(由我)重用套接字对象,因为它令人困惑。

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