草庐IT

socket通信

全部标签

c# - 哪个 .Net 组件应该用于 tcp/ip 套接字通信?

我们需要与另一个想要通过原始tcp/ip套接字通信与我们通信的系统对话。如果有的话,合适的.Net对象是什么?如果您知道第3方组件、开源组件等您认为更好用,也请随时提及。 最佳答案 我会使用TcpClient。它位于Socket之上,是Socket的抽象。TcpClient具有返回Stream对象的GetStream。然后,您可以简单地使用流阅读器来读取流。例如:tcpClient=newTcpClient(host,port){ReceiveTimeout=readTimeout};stream=tcpClient.GetStre

c# - 用于网络通信的良好 EOF 字节

我正在编写一个用于交key网络通信的C#库。我正在寻找一个明确的字节,我可以在我的库中使用它来指示数据block的结尾。目标是能够发送任何格式的文件或字符串。Null字符是否会这样做,这样它就不会破坏TCP连接,并且任何文件或字符串都不应将其包含在其数据中。提前致谢。编辑:顺便说一句,客户端和服务器都是我的库的一部分,因此它不需要遵守任何其他标准。回答后:我将创建一个X字节数组,然后使用最后一个字节来指示EOF是否位于(X-1)字节block中以及位于何处。 最佳答案 你问不可能的事“任何文件或字符串”可以包含任何字节序列。这使得完

sockets - 同一 IP 和端口上的多个 TCP 连接

我有一个关于TCP的非常基本的问题。考虑一个应用程序,例如DEST,其IPDestIP监听端口6789。现在我有2个源应用程序,它们能够向此应用程序DEST发送消息,并且它们通过TCP协议(protocol)进行通信。假设源系统1是SRC1,源系统2是SRC2,IP分别为SRC1和SRC2。理想情况下,这些源系统中只有一个正在运行,我可以看到我在SRC1或SRC2和DEST之间有一个事件连接通过在源系统上执行netstat命令(netstat-nao|grep6789)。现在我也启动了第二个源系统,惊讶地发现两个源系统上netstat的结果显示与应用程序的事件TCP连接DEST监听端口

Javascript Node.js 和 Socket.IO 广播服务器

我只需要一个简单的例子来解释如何做一个Node.JS服务器。基本上Node.JS将有2个服务器运行:-一个粗糙的TCP服务器和-一个Socket.IO服务器目标是将数据从TCPClient转发到对其感兴趣的各种Socket.IO客户端这样做的原因是为了更容易与其他语言进行通信(我将让一个java服务器在tcp套接字中发送消息,因为我找不到更好的方法来做到这一点-所有可用的java库(socket.io服务器和用java实现的客户端)是错误的)因为几乎每种语言都有套接字api。TCP客户端将在连接后立即发送一个字符串,Node.JS服务器将使用它创建一个命名空间并为其提供数据,因此Soc

【Unity】Socket网络通信(TCP) - 实现简单的多人聊天功能

多客户端连接服务器其原理是在服务端保存客户端连入后与客户端通信的socket,由于等待客户端连接会阻塞主线程,所以结合多线程就能实现多客户端连入功能。多人聊天只需要将A客户端发来的消息,转发给除A客户端外的其他客户端,即可实现。如果你还不怎么熟悉服务端和客户端的通信流程,可以看一下我的这两篇文章。【Unity】Socket网络通信(TCP)-最基础的C#服务端通信流程【Unity】Socket网络通信(TCP)-最基础的客户端通信流程这篇文章只实现了简单的发送String类型的消息,发送复杂的消息根据需求封装一个消息类,再把消息类对象序列化成对应的字节数组进行发送,接收方收到字节数组再根据对应

node.js - HAProxy 配置 - 如何使 TCP 连接保持粘性(Node.js、socket.io、websocket、FlashSocket)

我已经为EC2服务器设置了HAProxy,我在端口3005和3006上运行我的nodejs两个服务器。我们已经为我们的多人游戏设置了它。我们在客户端和服务器端使用socket.io进行实时事件更新。HAProxy与“平衡源”一起正常工作(我已经添加了我的HAProxy配置的工作副本),在源平衡器问题是它每次都在同一台服务器上发生所有事件。所以我的网络中有40台计算机设置,所以所有40台计算机事件都转到3005端口。当我第二天来的时候,它没有改变港口。我想在haproxy中使用TCP模式设置TCP连接粘性。有什么办法可以处理平衡轮询?我在这里添加了我当前的设置文件。我们也尝试使用cook

sockets - 只能通过 TCP 接收或发送

我在编写可以通过TCP连接发送和接收数据的PowerShell脚本时遇到问题。它似乎只能让我做一个或另一个。以下是我目前所拥有的。我想监听并等待连接,然后一旦建立,接收一个包含IP地址的字符串,进行一些奇特的查找以查看登录该机器的用户,然后发回用户名。如果我只发送数据,它就可以工作。如果我只接收数据,它就可以工作。如果我尝试同时执行这两项操作,则只有接收有效。我做错了什么?$port=1234do{$user=""$endpoint=new-objectSystem.Net.IPEndPoint([system.net.ipaddress]::any,$port)$listener=n

sockets - 使用 Java 发送零数据 TCP/IP 数据包

我的目标是发送一个数据字段为空的TCP数据包,以便测试与远程机器的套接字。我正在使用OutputStream类的write(byte[]b)方法。我的尝试:outClient=ClientSocket.getOutputStream();outClient.write(("").getBytes());这样做,数据包永远不会出现在网络上。如果将""替换为""或任何非零字符串,它会正常工作。我尝试了jpcap,它与我一起工作,但没有达到我的目标。我想扩展OutputStream类,并实现我自己的OutputStream.write方法。但这超出了我的知识范围。如果有人已经做过这样的事情,

sockets - 针对低延迟和小数据包的建议 TCP 套接字设置

我想知道我是否可以对TCP套接字进行一些调整,除了禁用Nagle,以便为主要包含小数据包的客户端-服务器协议(protocol)获得尽可能低的延迟。客户端数据包大多小于100字节,服务器数据包大小为100-300字节。我在服务器端使用java,在客户端使用(目标)c。 最佳答案 您可能需要考虑减少延迟确认超时(如果可能)。即使Nagle关闭,在您不经常发送数据包并且发生数据包丢失的情况下,延迟ack可能会导致数据包丢失检测延迟,然后重传延迟。 关于sockets-针对低延迟和小数据包的建

windows - Socket.Bind 和 IP 源路由,具有多个本地网络接口(interface)

我编写了一个在具有两个网络接口(interface)的系统(Win7)上运行的工具,每个接口(interface)都链接到不同的子网,每个子网都有自己的网关,然后链接到两个独立的远程网络(每个网关后都有传出防火墙)。我通过使用Socket.Bind(在执行Connect之前)到每个相关NIC的IP地址,通过两个NIC启动传出TCP连接。第一个NIC工作正常,但对于第二个NIC,我收到SocketException:“Asocketoperationwasattemptedtoanunreachablenetwork”。我最初的理解是,由于套接字绑定(bind)到具体NIC的本地端点,该