26得票3回答
在.NET中从NetworkStream读取的正确方式是什么?

我一直在努力处理这个问题,但找不到代码无法正确从我编写的TCP服务器中读取数据的原因。我正在使用TcpClient类及其GetStream()方法,但似乎有些问题。要么操作无限期地阻塞(最后一个读取操作没有按预期超时),要么数据被裁剪了(由于某种原因,读取操作返回0并退出循环,可能是服务器响应...

26得票3回答
C#检测TCP断开连接

我有两个简单的应用程序: 一个服务器应用程序,在特定的TCP端口上等待客户端连接。然后听取他说的话,发送一些反馈并断开该客户端的连接。 一个表单应用程序,连接到服务器应用程序,然后说些什么,等待反馈并从服务器断开连接,然后在表单中显示反馈。 虽然服务器应用程序似乎表现正确(我已经使用T...

22得票5回答
调用BeginAcceptTcpClient后停止TcpListener

我有这段代码...internal static void Start() { TcpListener listenerSocket = new TcpListener(IPAddress.Any, 32599); listenerSocket.Start(); lis...

22得票3回答
如何在TcpClient类中使用SSL

在 .NET framework 中有一个名为 TcpClient 的类,可以从电子邮件服务器检索电子邮件。该 TcpClient 类有 4 个构造函数与服务器连接,最多需要两个参数。它适用于那些不使用 SSL 的服务器。但是 Gmail 或许多其他电子邮件提供商使用 SSL 进行 IMAP。...

21得票2回答
如何在TCP套接字编程中让内核选择1024到5000之间的端口号

当我运行以下代码时: struct sockaddr_in sin; int addrlen; addrlen=sizeof(sin); memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.s...

21得票1回答
使用TcpClient相比直接使用Socket有哪些优点?

我知道TcpClient是socket类的包装器,用TcpClient可以访问底层的socket,但这个包装器具体有什么作用呢? 在使用TCPClient时,我是否需要像使用socket一样不断调用Receive()方法,或者说这个包装器会确保所有数据都被接收到了? 最后,我能否在服务器和...

20得票7回答
TCP/IP客户端 - EHOSTUNREACH(无法到达主机)

我正在尝试开发一个客户端服务器TCP/IP应用程序。我的PC上运行着一个服务器,移动设备上运行着客户端应用程序。它们都在同一个Wi-Fi网络中,但我无法在它们之间建立连接。在调试客户端Android应用程序时,显示了以下错误:09-21 01:08:40.422: W/System.err(8...

18得票4回答
需要关闭NetworkStream和TcpClient吗,还是只需要关闭TcpClient?

我正在阅读TcpClient.Close()的文档,并注意到以下内容: 调用此方法最终将导致关联的Socket关闭,并且如果创建了一个NetworkStream,则还会关闭用于发送和接收数据的关联的NetworkStream。 所以,请纠正我如果我错了,这意味着如果在TcpClient上调...

18得票3回答
正确的关闭TcpListener和TcpClient连接顺序(哪一方应该是主动关闭)

我阅读了之前问题的这个答案,其中说到:因此,首先终止对等体(即先调用close()的一方)将最终处于TIME_WAIT状态。[...]但是,在服务器上有大量处于TIME_WAIT状态的套接字可能会妨碍新连接的接受。[...]相反,设计应用程序协议,使连接终止始终从客户端发起。如果客户端总是知道...

18得票3回答
Windows自动化telnet

我想运行一组通常在 Telnet 中运行的命令(从 C# 中运行)。 例如,我想要运行以下命令using System; using System.Diagnostics; namespace InteractWithConsoleApp { class Program {...