11得票4回答
取消C# 4.5 TcpClient的ReadAsync超时操作

在.NET 4.5中,如何通过超时来正确取消TcpClient的ReadAsync操作并捕获此超时事件? TcpClient.ReadTimeout似乎仅适用于同步读取。 更新: 尝试应用此处描述的方法取消异步操作var buffer = new byte[4096]; Cancellat...

11得票1回答
在C#中使用TCPClient / Socket时,指定要使用的出站IP地址。

我有一个服务器,其中网络适配器分配了几个IP地址。 在该服务器上有一个客户端应用程序,通过TCPClient连接到另一个服务器应用程序。对于所有的输出通信,我的服务器都使用默认的IP地址,然而对于这个应用程序,我想让输出通信使用另一个本地IP地址。 在通信时,是否可以指定另一个本地分配的I...

10得票5回答
C# NetworkStream.Read 奇怪现象

有人能指出这段代码的缺陷吗?我正在使用TcpClient检索一些HTML。当与IIS服务器进行通信时,NetworkStream.Read()似乎永远无法完成。如果我改用Fiddler代理,则可以正常工作,但是在直接与目标服务器通信时,.read()循环将不会退出,直到连接异常中断并显示类似“...

10得票1回答
使用TcpClient进行更快速的通信方式?

我正在使用C#编写一个客户端/服务器应用程序,目前一切都很顺利。现在,一切工作正常,而且非常健壮。我的问题是在发送数据包时遇到一些延迟。 在客户端,我正在执行以下操作:NetworkStream ns = tcpClient.GetStream(); // Send packet byt...

10得票2回答
Telnet IAC命令回答

我正在尝试使用套接字协商一个telnet连接。套接字是工作的,但服务器告诉我那件事: ÿýÿýÿûÿû login: ÿýÿýÿûÿû 的意思是 255 253 1 255 253 31 255 251 1 255 251 3 我阅读了所有的 RFC 文档,但我不明白应该用什么来响应...

10得票1回答
如何在C#中检测Socket断开连接

我正在处理一个客户端/服务器关系,旨在无限期地推送数据。 我试图解决的问题是在客户端方面,即我找不到一种方法来检测断开连接。 我尝试了其他人提供的几种解决方案,包括捕获IO异常,以及在所有三个SelectModes上轮询套接字。我还尝试结合使用轮询和检查套接字的“Available”字段。...

10得票1回答
简单的TCP客户端/监听器("hello world")示例

我需要的只是一个简单的TCPClient/Listener(“hello world”)示例。我是个新手,微软的TCPClient/Listener类示例不是我要找的。我只想让TCPClient发送一条消息“Hello world”,然后TCPListener接收到该消息并回复一条消息“我已经...

10得票3回答
什么情况会导致 NetworkStream.Write 阻塞?

NetworkStream.Write会一直阻塞,直到要发送的数据已经被放入TCP发送缓冲区,还是直到接收方实际ACK了数据? 注意:套接字被配置为阻塞I/O。 编辑:糟糕,当然没有TcpClient.Write!我们所有人都明白我们正在谈论TcpClient.GetStream()。Wr...

10得票1回答
C# - 在您的主机中,已建立的连接被软件中止错误。

我正在使用TCPListener构建一个模拟服务器。 当我试图通过运行客户端来调试我的代码时,我能够在服务器上读取请求。但在客户端上,会抛出异常。以下是我从跟踪中得到的异常: System.ServiceModel.CommunicationException: 套接字连接被中止。这...

9得票4回答
为什么在C#中,“Flush”不能强制将字节传输到网络流中?

我有一个项目,我正在尝试将序列化的对象发送到服务器,然后等待“OK”或“ERROR”消息返回。 我似乎遇到了与此问题类似的问题:TcpClient发送/关闭问题 问题在于,我似乎唯一能够发送原始对象的方法是关闭连接,但是(当然)我无法等待服务器成功处理对象的结果。 private void ...