8得票4回答
接受多个 TCP 客户端的最佳方式是什么?

我有一个客户端/服务器基础架构。目前,他们使用TcpClient和TcpListener在所有客户端和服务器之间发送和接收数据。 当前的做法是,当数据被接收(在它自己的线程上),它会被放入队列中以供另一个线程处理,以便释放套接字,使其准备好并且可以接收新数据。 ...

8得票4回答
TcpClient.EndConnect在套接字关闭时抛出NullReferenceException异常。

我正在尝试使用 TcpClient.BeginConnect / TcpClient.EndConnect 组合连接到我的服务器。然而,有些事情并不像它们应该的那样工作。 场景如下: 调用 TcpClient.BeginConnect 服务器故意离线(用于测试目的) - 因此无法建立连接...

8得票3回答
不触发警告的Task.Run替代方法

以下代码可以按照我想要的方式工作,但会出现警告: 警告 1 因为此调用未被等待,所以在完成调用之前,当前方法的执行将继续进行。考虑对调用结果应用 'await' 运算符。 有没有替代 Task.Run() 的方法以一种简洁的方式启动这个线程? /// <summary&gt...

8得票2回答
C# TcpClient.Connect 通过代理连接

我曾经费尽心思地尝试想弄清这个问题,但迄今为止,我所看到的所有内容都只是人们告诉我要使用其他方法。 话说回来,我的问题是,我正在尝试通过TcpClient使用socks 5代理连接到服务器。 我的当前设置如下: Client = new TcpClient(); ...

8得票2回答
socket.shutdownOutput() 的目的是什么?

我正在使用以下代码将数据发送到TCP服务器。我假设我需要使用socket.shutdownOutput()来适当地指示客户端完成发送请求。我的假设正确吗?如果不是,请告诉我shutdownOutput()的目的。也感谢任何进一步的优化建议。 客户端 def address = new In...

8得票2回答
我该如何完全关闭与MCU的tcpClient连接?

我现在正在处理与运行在ESP32上的tcp服务器的tcp套接字连接。 通信方面没有问题,但是我无法关闭这个连接。 在搜索了解如何关闭/重置tcp客户端的解决方案后,似乎正确的关闭tcp客户端的方法应该是: tcpClient.GetStream().Close(); tcpCLient.Cl...

7得票1回答
TcpClient/NetworkStream 没有检测到断开连接

我用 TcpClient 和 NetworkStream 创建了一个简单的持久套接字连接,用于我们的游戏。连接、发送消息和正常断开连接(退出应用程序/关闭服务器等)都没有问题。 然而,在某些情况下,客户端无法检测到与服务器的断开连接。我测试的最简单方法是拔掉 Wi-Fi 路由器上的网络电缆或...

7得票1回答
TcpClient的BeginRead/Send方法是否线程安全?

如果我在.NET中使用了TcpClient,并在相关的网络流上调用了异步BeginRead(),那么我是否仍然可以在另一个线程上对该流调用Write()? 还是说我必须在从BeginRead回调的代码和执行发送的代码中lock() TcpClient? 此外,如果我使用以下代码关闭TcpC...

7得票5回答
TcpClient.Close() 只能在 Thread.Sleep() 中使用。

我有一个简单的服务器,可以从客户端获取字符串并在屏幕上打印出来。 我也有一个简单的客户端,发送数据后关闭: static void Main() { var client = new TcpClient("localhost", 26140); var st...

7得票1回答
从TCP服务器向客户端发送多个消息(从C#到Android)

我是一名有用的助手,可以为您翻译文本。 我正在开发一个应用程序,其中C#服务器与Android客户端通信。服务器需要向Android tcpClient发送多个消息。要发送消息,必须在服务器上关闭tcpClient对象,否则无法发送。一旦关闭tcpClient,如何再次与客户端通信,如何跟踪...