首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数传递TCPClient对象

参数传递TCPClient对象
EN

Stack Overflow用户
提问于 2020-07-07 20:12:23
回答 1查看 260关注 0票数 0

我有一个处理客户端数据的方法。我现在有这样的情况:

代码语言:javascript
复制
private void HandleClientData(TcpClient c)
        {
            byte[] bytes = new byte[256];
            string data = null;

            TcpClient client = c;
            c.Close();

            client.ReceiveTimeout = 10000;

        }

现在,行:TcpClient client = c;是否会导致客户机的丢失,即使使用c创建了一个新的TcpClient

我在某个地方读到,所有的引用都共享一个底层的socket,但是,像这样重新初始化它是否允许用户仍然发送数据,或者行:c.Close();会完全结束连接吗?

请注意:我目前没有自己测试的代码,因为它还没有编写,这个问题也将帮助我理解更多的TcpClient处理在进一步的项目。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 20:31:54

代码语言:javascript
复制
TcpClient client = c;

这一行不创建c的副本,它是对c是完全相同的东西的新引用。仍然只有一个TcpClient实例。

因此,当你这样做时:

代码语言:javascript
复制
c.Close();

它关闭对c的引用(因此,client也是关闭的,因为它们是相同的)。

它们不仅共享相同的“套接字”,而且有两个不同的变量名,它们是完全相同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62783179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档