草庐IT

socket_handle

全部标签

sockets - Rust 持久化 TcpStream

我似乎在与std::io::TcpStream作斗争。我实际上是在尝试打开与另一个系统的TCP连接,但下面的代码完全模拟了这个问题。我有一个Tcp服务器,它在打开时简单地将“HelloWorld”写入TcpStream,然后循环以保持连接打开。fnmain(){letlistener=io::TcpListener::bind("127.0.0.1",8080);letmutacceptor=listener.listen();forstreaminacceptor.incoming(){matchstream{Err(_)=>{/*connectionfailed*/}Ok(stre

sockets - 从 IPv6 中删除碎片有什么好处?

我正在从事一个项目,其中包括使用Java套接字开发应用程序。然而,在阅读一些基础知识和即将推出的IPv6范例时,这促使我提出以下问题,从IPv6中移除碎片有什么好处?如果有人能告诉我原因会有所帮助吗?我在互联网上进行了研究,但没有找到任何有用的描述。 最佳答案 没有IPv6分片是一种常见的误解,因为IPv6header没有IPv4所具有的分片偏移字段;但是,它并不完全准确。IPv6不允许路由器对数据包进行分段;但是,终端节点可以插入一个IPv6分段header1。如RFC5722所述2,碎片化的问题之一是它往往会产生安全漏洞。在19

C# Socket.Receive 消息长度

我目前正在开发一个C#套接字服务器,它可以接受来自多个客户端计算机的多个连接。服务器的目标是允许客户端“订阅”和“取消订阅”服务器事件。到目前为止,我已经愉快地看了这里:http://msdn.microsoft.com/en-us/library/5w7b7x5f(v=VS.100).aspx和http://msdn.microsoft.com/en-us/library/fx6588te.aspx的想法。我发送的所有消息都是加密的,所以我将要发送的字符串消息,将其转换为byte[]数组,然后在将消息长度添加到数据之前加密数据并将其发送出去通过连接。让我印象深刻的一件事是:在接收端,

sockets - 带多宿主的 SCTP 作为 TCP 的直接替代

SCTP具有本地多宿主支持,如果我理解正确的话,它会在主接口(interface)出现故障时自动将您的数据包重新路由到辅助NIC。我用TCP复制了这个功能,方法是编写一个自定义路由守护程序,以便在我的主NIC出现故障时修改路由表。我想尝试使用SCTP。在史蒂文的UnixNetworkProgrammingV13rdEdition在第288页上说:Forthisexample,weuseaone-to-many-styleserver.Wemakethischoiceforoneimportantreason.TheexamplesinChapter5canbemodifiedtorun

sockets - Julia TCP 服务器和连接

我在这里问了如何让TCP服务器一直发送数据:JuliaTCPselect效果很好。我现在遇到了新问题,所以我想开始新的对话。我按照图片做了这种连接:所以发送者有时会向服务器1发送一些东西,服务器1读取它并更新发送给服务器2的内容,然后服务器2计算数字并与C程序通信。这是我的服务器1代码:notwaiting=truemessage=zeros(10,14)server=listen(5001)connection=connect(5003)whiletrueifnotwaitingnotwaiting=false#Runsacceptasync(doesnotblockthemaint

sockets - WebSockets 相对于 TCP/IP 的优势

我们有一个连接到服务器并每15秒向其发送一次位置的应用程序。现在我们的客户要求将我们当前的TCP/IP连接“升级”为WebSocket。这样做的原因是他听说它使用的带宽更少,他想将15秒减少到1秒。(不是公共(public)应用程序,所以电池耗尽不是真正的问题)我已经做了一些研究和许多WebSockets与HTTP的比较,但只有2或3个WebSocket与TCP/IP的比较。我已经发现了:WebSockets与TCP/IP基本相同,但TCP/IP工作在比WebSockets更低的层上。WebSockets可能会使用更少的带宽,因为它的协议(protocol)可能比我们当前的协议(pro

sockets - tcp 两端尝试同时连接

考虑TCP的三次握手。说明here.现在上面的文章提到两侧可能会尝试同时连接,并且三向握手在这种情况下可以正常工作。我们可以使用socketsapi来模拟这种情况吗?我们通常使用套接字编码的是被动打开(服务器)和主动打开(客户端)? 最佳答案 使用套接字API可以同时打开TCP。正如Nikolai所提到的,这是一个执行以下序列的问题,其时间安排使得初始SYN相互交叉。bindaddr1,port1connectaddr2,port2bindaddr2,port2connectaddr1,port1下面是我如何使用单个Linux主机实

sockets - 当使用环回地址使用 TCP/IP 套接字执行 IPC 时,公共(public)网络堆栈是否会跳过在较低级别的 PDU 中构建消息的框架?

在某些环境(如Java)中,使用TCP/IP套接字在同一主机上使用“本地主机”地址(IPv4中的127.0.0.1或IPv6中的::1)的进程之间传递消息是很自然的。(因为Java倾向于不在其API中公开其他IPC机制)。显然,这可能比通过管道传递消息的IPC或使用共享内存的IPC慢很多。另一方面,如果TCP/IP网络堆栈意识到连接的两端都在环回接口(interface)上,它可能会做一些优化,这样效率可能与使用管道没有太大区别.但是常见操作系统(Windows、Linux)是否在其TCP/IP堆栈中实现了此类优化? 最佳答案 是的

sockets - 实现实时多人游戏存在什么样的问题

我有一些使用插槽制作多人回合制游戏的经验,但我从未尝试过实时Action游戏。我需要处理什么样的额外问题?我是否需要保留玩家行为的历史记录,以防落后的玩家过去做过某事?我真的需要使用UDP数据包还是TCP就足够了?还有什么?我还没有真正决定要做什么,但是为了这个问题的目的,你可以考虑一个10人的2D游戏,XY运动。 最佳答案 “客户端服务器”或“点对点”或介于两者之间的东西:哪台计算机有权决定哪些游戏操作。对于回合制游戏,通常很容易只说“服务器拥有最终权限,我们就完成了”。对于实时游戏,通常该设计是一个很好的起点,但一旦您添加延迟,

sockets - 什么是消息边界?

以下上下文中的“消息边界”是什么?OnedifferencebetweenTCPandUDPisthatUDPpreservesmessageboundaries.我了解TCP和UDP之间的区别,但不确定“消息边界”的定义。由于UDP在每个单独的数据包中包含目的地和端口信息,是否可以为消息提供“边界”? 最佳答案 不,消息边界与目的地或端口无关。“消息边界”是通过协议(protocol)发送的两条消息之间的分隔。UDP保留消息边界。如果您通过UDP发送“FOO”,然后发送“BAR”,另一端将收到两个数据报,一个包含“FOO”,另一个