草庐IT

Flask-Sockets

全部标签

sockets - 现有的 TCP 中继解决方案

我有一个场景需要使用TCP中继。在开始编写自定义内容之前,我想看看是否有人知道可以为我做这件事的现有软件。我在不同的网络上有2台设备无法相互连接。我们称它们为网络A和B。这些设备需要通信,它们可以通过网络C上的“中间人”中继进行通信。A可以连接到C,B可以连接到C。C不能连接到A或B.A->C思路如下:A建立到C的TCP连接并简单地等待当B需要A的东西时,它会建立到C的TCP连接。C从B读取数据并用它响应A已经打开的连接。A处理数据并响应C,C转发给B。是否有现成的工具可以做到这一点? 最佳答案 如此处解释:https://serv

sockets - 客户端是否确认了我发送给它的所有数据?

RFC7230定义了HTTP/1.1协议(protocol),它在6.6中有一个有趣的段落,“连接管理。拆卸”:ToavoidtheTCPresetproblem,serverstypicallycloseaconnectioninstages.First,theserverperformsahalf-closebyclosingonlythewritesideoftheread/writeconnection.Theserverthencontinuestoreadfromtheconnectionuntilitreceivesacorrespondingclosebytheclie

sockets - 使用 TCP/IP LabVIEW 在 PC 和 UR5 Universal Robotics 机器人 ARM 之间进行通信

我有一个UR5通用机器人机器人ARM和通过以太网连接的PC,我试图通过LabVIEW相互交谈(只需来回发送字符串)。我已经设法使用TCPListenVI和TCPRead函数读取从机器人到PC的通信。但是,我无法使用TCPWrite写入机器人,甚至无法使用TCPOpen连接初始化与机器人的连接。在机器人已经通过TCPListen与我的计算机建立连接但发送了0个字节后,我尝试了TCPWrite。如何使用LabVIEWTCP/IP从我的PC向机器人发送字符串?如果有人有任何在LabVIEW中使用TCP/IP的经验,我们将不胜感激。 最佳答案

sockets - TCP 连接的 Recv-Q 高的原因是什么?

在我的应用程序中,我发现我对TCP连接的send()调用偶尔会被阻止。每当发生这种情况时,netstat输出的TCP连接的Recv-Q非常高:tcp314238010.8.8.21:4730210.8.8.11:5672ESTABLISHEDtcp313276010.8.8.21:4729410.8.8.11:5672ESTABLISHED什么可能导致TCP连接的接收缓冲区被填满?它是如何导致我的send()调用无限期挂起的?附注这可能相关也可能不相关,此TCP连接位于我的应用程序和RabbitMQ服务器之间。 最佳答案 Whatc

sockets - Easy Button to UDP 数据包 - 控制板术语

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭2年前。Improvethisquestion对于那些处理微Controller编程的人......我想要一个瞬时接触开关(假设是StaplesEasyButton,因为这是最有趣的瞬时接触开关),当它被按下时,通过网络发送广播UDP数据包(由.NET应用程序并从那里做各种有趣的事情)。到目前为止,我发现的最接近的东西是工业数据采集硬件接口(interface),但我正在寻找更多具有几个输入引脚和以太网输出的可编程单微Controller。这

sockets - SO_RCVBUF 怎么会小于 TCP 接收窗口呢? (Windows XP)

我有一个在WindowsXP上使用TCP的应用程序。当我使用SO_RCVBUF选项调用getsockopt时,它报告8192字节。但是,Wireshark显示该应用程序通告64K的接收缓冲区。这怎么可能?要有64K的接收窗口,难道不需要64K的缓冲区吗?是否有两种不同的缓冲区? 最佳答案 我正在研究这个,我认为SO_RCVBUF和TCP窗口不一定是同一件事。如果你看http://msdn.microsoft.com/en-us/magazine/cc302334.aspx在“WindowsNT和Windows2000套接字体系结构”

sockets - Racket:TCP 套接字上的设置选项

我需要使用TCP作为传输层通过网络发送数据,库racket/tcp可以很好地用于此目的,但我想为套接字设置一些选项,e.G。SO_RCVTIMEO和SO_SNDTIMEO。我找到了这个图书馆vyzo/socket,但我不确定这是修改套接字参数的最佳(也是唯一)选项,因为它在官方网站上被描述为“BSD/POSIX套接字库formzscheme”。谢谢。 最佳答案 对Racket源代码的快速grep(对于setsockopt)表明没有内置接口(interface)可用于指定任意套接字选项(所有使用setsockopt我发现只使用固定选项

sockets - 为什么 FreeBSD 获取 TCP 套接字选项需要锁定写锁?

在FreeBSD中,为了获取TCP套接字选项(在tcp_usrreq.c中的tcp_ctloutput()中),它需要像设置套接字选项一样使用INP_WLOCK(inp)进行锁定。由于获取TCP套接字选项仅从tcp控制block读取一些数据并且不更改数据,我很好奇为什么我们不使用INP_RLOCK(inp)的读取锁定以获得更好的性能。 最佳答案 如果您不对其施加写锁定,则选项可能会在读取时更改,从而产生虚假结果。 关于sockets-为什么FreeBSD获取TCP套接字选项需要锁定写锁?

sockets - 在 node.js 中保持 tcp 套接字打开

我正在打开一个到服务器的tcp连接,这很容易做到,但我需要一种方法来保持该套接字打开,而不必再次调用net.createConnection(port,host)然后再次。我要实现的是一个套接字服务器,它接受多个连接,然后如上所述通过一个套接字传送请求。然后我需要将响应传送到正确的套接字。但是,我遇到的唯一问题是维护一个我试图在监听服务器代码之外创建的开放套接字。我已经使用单例模式来创建套接字......varSingleton=(function(){varsocket=null;functionconnectToHost(port,host){socket=net.createCo

sockets - 在子网掩码和路由方面的主机设备通信

假设我有一台带有两个以太网适配器的主机:LAN适配器-连接到LAN,自动获取IP地址。设备适配器-IP地址为192.168.10.1,子网掩码为255.255.255.0。我也有连接到设备适配器的硬件设备,它像TCP/IP服务器一样工作,并配置了IP地址192.168.10.2,子网掩码255.255.255.0。我有以下愚蠢的规则来建立主机-设备通信:将两个子网掩码设置为255.255.255.0,并定义仅最后一个组件不同的IP地址。没关系,它有效。现在我正在阅读有关TCP/IP通信的整个理论(www.tcpipguide.com)。如何根据网络、子网、掩码、路由等来描述我的案例?比