C# TCP Socket编程——向所有套接字发送数据

标签 c# sockets tcp server client

我正在从事服务器/多客户端编程。我会停止追逐一切都运行良好但是

foreach(Socket sct in socketArray){
        sct.send(data);
}

不工作。它假设将数据发送到所有连接的套接字,但只有发出请求的套接字才能获得响应。我在想是不是和tcp打包有关?或者我不知道为什么它不起作用?如果有人可以提供帮助,我将非常感激。谢谢

最佳答案

假设 databyte[] 并且您的意思是 sct.Send,那么:它应该可以正常工作,并发送相同的负载- 按顺序 - 到 socketArray 中的所有套接字。这里没有什么特别细微的差别 - 每个套接字都是独立的。

要检查的事情:

  • socketArray 是否真的有预期数量的套接字?
  • 它们是正确的 socket 吗?
  • 是否发生异常?
  • socket 真的连接了吗? (众所周知,损坏的套接字很难可靠地检测到)
  • 您是否启用了NoDelay
  • 这里是否存在某种并发性,这可能意味着单个套接字试图同时发送两次?
  • 是否发送,错误在接收码中?

关于C# TCP Socket编程——向所有套接字发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49648193/

相关文章:

java - readFully(byte[] b, int off, int len) 和 EOFException

c# - 为什么这个端口扫描器代码有时会错过打开的端口?

c# - ASP.NET MVC 中基于表单的设计的规范资源?

c# - SWIG 引用输入,自定义类输出

java - 如何防止 Java 中的 SocketInputStream.socketRead0 挂起?

c - 如何从套接字读取所有服务器的响应?

linux - TCP 连接和确认号

c# - Xamarin 动态加载本地化文件

c# - Xamarin 表格 : Android: Toast Notifications Clicked

c - 从 C 中的套接字文件描述符读取时如何检测分隔符?