草庐IT

tcpClient

全部标签

C# TcpClient,同时读写流

我知道这个问题已经在SO上被问过好几次了,但是没有一个线程解决了我们目前面临的完全相同的问题。我们基本上是在开发TCP服务器/客户端应用程序,其中服务器是用Java编写的,客户端是用C#编写的。我在Java端,我正在为我的缓冲区使用分离的输入和输出流。我们的问题是,如果客户端从服务器接收消息并从缓冲区异步读取这些消息并尝试在该过程中向其中写入内容,则会抛出异常-不足为奇。我的问题是:在这种情况下该怎么做?创建单独的流?我们已经尝试过了,但似乎C#不希望我们这样做。我们在这里迫切需要解决方案,非常感谢任何帮助! 最佳答案 不,它应该工

c# - 通过 Socket 直接使用 TcpClient 有什么好处?

我知道TcpClient是套接字类的包装器,如果使用TcpClient我可以访问底层套接字,但包装器到底做了什么?当使用TCPClient时,我是否需要像使用套接字一样继续调用Receive(),或者包装器是否确保我的所有数据都出现?最后,我能否在服务器和客户端都使用TcpClient来包装套接字(在使用TcpListener接受服务器上的原始连接之后) 最佳答案 whatexactlydoesthewrapperdo?让我用一个例子来解释这一点。您在C#File.ReadAllLines中有一个方法。它会为您读取文件中的所有行。现

c# - 如何在 TcpClient 类中使用 SSL

在.NET框架中有一个类TcpClient用于从电子邮件服务器检索电子邮件。TcpClient类有4个构造函数来连接服务器,最多接受两个参数。它适用于那些不使用SSL的服务器。但是gmail或许多其他电子邮件提供商对IMAP使用SSL。我可以连接到gmail服务器,但无法使用email_id和密码进行身份验证。我验证用户的代码是publicvoidAuthenticateUser(stringusername,stringpassword){_imapSw.WriteLine("$LOGIN"+username+""+password);//_imapSwisaobjectofStre

c# - 如何正确使用 TcpClient ReadTimeout

在为这个简单问题找到答案所花费的时间似乎比合理的多得多之后,我想我应该将我的结果留在这里,这样其他人就不必跳过我刚刚遵循的所有障碍和错误路径。问题是,如果您使用TcpClientReadTimeout属性并且您的读取操作实际超时,Microsoft决定关闭套接字。这是不期望的,不可取的,我所知道的任何其他套接字实现都没有这样做,并且除了程序员懒惰之外没有正当理由应该是这种情况。但这就是微软选择做的事情。无论如何,我发现的所有变通办法,包括在这个网站上,都有各种方法来进行某种形式的繁忙轮询,有些甚至涉及启动另一个线程来执行简单的读取调用。抱歉,我的CPU有更好的事情要做,而不是坐在那里忙

c# - 如何检查 TcpClient 连接是否关闭?

我正在研究TcpClient,我正在尝试弄清楚如何在连接断开时使Connected属性为false。我试过NetworkStreamns=client.GetStream();ns.Write(newbyte[1],0,0);但如果TcpClient断开连接,它仍然不会显示给我。您将如何使用TcpClient来解决这个问题? 最佳答案 我不建议您仅仅为了测试套接字而尝试编写。也不要依赖.NET的Connected属性。如果您想知道远程端点是否仍然处于事件状态,您可以使用TcpConnectionInformation:TcpClie

c# - 如何设置 TcpClient 的超时时间?

我有一个TcpClient,我用它向远程计算机上的监听器发送数据。远程计算机有时会打开有时会关闭。因此,TcpClient会经常连接失败。我希望TcpClient在一秒钟后超时,因此当它无法连接到远程计算机时不会花费太多时间。目前,我将此代码用于TcpClient:try{TcpClientclient=newTcpClient("remotehost",this.Port);client.SendTimeout=1000;Byte[]data=System.Text.Encoding.Unicode.GetBytes(this.Message);NetworkStreamstream

【LWIP】stm32用CubeMX(6.4版)配置LwIP+Ping+TCPclient+TCPserver发送信息到PC(操作部分)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言零、更新(2022.08.07)一、实验平台二、手把手全程配置步骤1.配置电脑环境2.配置cubeMX3.配置MDK(Keil5)4.配置TCPclient通信程序5.配置TCPserver通信程序三、总结前言这是我写的第一篇博客,欢迎大家给点鼓励和提出建议!本人由于理想和爱好,辞去土木工作,于不到一个月前入职某科技公司开始从事嵌入式,专业能力和刚毕业的大学生一样都是很薄弱的。然后被分配到了关于stm32网络方面的工作,经过两个星期的苦学,从一个对cubeMX、网络和LWIP都是零基础的新手学会了LWIP和网络的基础原

【LWIP】stm32用CubeMX(6.4版)配置LwIP+Ping+TCPclient+TCPserver发送信息到PC(操作部分)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言零、更新(2022.08.07)一、实验平台二、手把手全程配置步骤1.配置电脑环境2.配置cubeMX3.配置MDK(Keil5)4.配置TCPclient通信程序5.配置TCPserver通信程序三、总结前言这是我写的第一篇博客,欢迎大家给点鼓励和提出建议!本人由于理想和爱好,辞去土木工作,于不到一个月前入职某科技公司开始从事嵌入式,专业能力和刚毕业的大学生一样都是很薄弱的。然后被分配到了关于stm32网络方面的工作,经过两个星期的苦学,从一个对cubeMX、网络和LWIP都是零基础的新手学会了LWIP和网络的基础原

关于 c#:Detecting drop connections

Detectingdroppedconnections我有一台服务器和许多客户端。服务器需要知道客户端何时非正常断开连接(不发送TCPFIN),以便它没有与该客户端关联的挂起连接和其他一次性对象。无论如何,我读了这篇文章并决定从链接的博客中添加一个"keepalive消息到应用程序协议"(仅包含头字节)和"假设最坏的显式计时器"方法。当客户端连接时(顺便说一句,我正在使用TcpListener和TcpClient),服务器启动一个System.Threading.Timer倒计时30秒。每当服务器从该客户端接收到某些内容时,它都会重置计时器。当计时器达到0时,它会断开用户并处理它需要处理的任何

关于 c#:Detecting drop connections

Detectingdroppedconnections我有一台服务器和许多客户端。服务器需要知道客户端何时非正常断开连接(不发送TCPFIN),以便它没有与该客户端关联的挂起连接和其他一次性对象。无论如何,我读了这篇文章并决定从链接的博客中添加一个"keepalive消息到应用程序协议"(仅包含头字节)和"假设最坏的显式计时器"方法。当客户端连接时(顺便说一句,我正在使用TcpListener和TcpClient),服务器启动一个System.Threading.Timer倒计时30秒。每当服务器从该客户端接收到某些内容时,它都会重置计时器。当计时器达到0时,它会断开用户并处理它需要处理的任何