草庐IT

Flask-Sockets

全部标签

sockets - 使用辅助 IP 地址连接套接字

不久前,我能够通过以下步骤从给定接口(interface)上的主要或次要IP地址连接到给定目标地址。使用ipaddradd...将辅助IP地址添加到给定接口(interface),根据需要将套接字绑定(bind)到主要或次要地址,使用#2中绑定(bind)的主要或次要地址连接到目标IP地址。我最近将一台机器升级到Linux3.3.6,但它不再有效,但我不记得我试过的最后一个版本确实有效。有谁知道如何在较新的内核中做同样的事情?我刚刚在另一台机器上验证了2.6.23上的相同代码。UPDATE2ThisseemstoberelatedtotheNICdriver.With3.3.6and8

sockets - 数据包与 TCP 选择性确认的交互如何工作?

谁能解释一下数据包与TCP选择性确认的交互是如何工作的?我在维基百科上找到了定义,但我无法清楚地了解选择性确认与肯定确认和否定确认相比的真正作用。 最佳答案 TCP将它发送的信息分成多个段...本质上,段是不大于从另一端接收到的TCPMSS(最大段大小)的当前值的数据block。这些block具有递增的序列号(基于TCPsession中发送的总数据字节数),允许TCP知道什么时候在传输中丢失了东西;第一个TCP序列号是随机选择的,出于安全目的,它不应是伪随机数。大多数时候,您本地以太网的MTU小于MSS,因此他们可以在您确认之前向您

sockets - Akka IO.TCP 与 Json

我已经使用akka.io.tcp编写了客户端和服务器,但在读取客户端发送的消息时遇到了问题。我使用json发送消息。在客户端,我这样写消息:connection!Write(ByteString(msgString))在服务器端我有以下内容:overridedefreceive:Receive={caseReceived(data)=>listener!Json.parse(data.utf8String)casePeerClosed=>{contextstopself}}问题是akka一次读取多个消息,所以我得到一个无效的Json。有没有办法让akka一次只读一条消息?

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

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堆栈中实现了此类优化? 最佳答案 是的