草庐IT

Flask-Sockets

全部标签

sockets - 如何确定打开的套接字是 TCP 还是 unix 域套接字?

我的代码传递了一个打开的套接字。此套接字可以是TCP套接字(AF_INET)或Unix域套接字(AF_UNIX)。根据套接字的域,需要进行不同的处理。特别是如果套接字绑定(bind)到一个地址,那么我可能想以不同的方式接受传入连接。确定我传递的套接字是unix域套接字还是TCP套接字的最佳方法是什么?该解决方案至少需要在OSX和Linux上运行。getsockopt似乎允许获取套接字的类型(例如SOCK_STREAM等),但不允许获取域。getsockname将为OSX上的unix域套接字返回零长度,但这正式是bugLinux行为是different. 最佳

sockets - Windows Phone P2P TCP/IP 连接

我正在开发WindowsPhone8应用程序(游戏)。在应用程序中,我需要能够与另一部手机建立TCP/IP连接(大厅匹配),然后在没有中央服务器的情况下来回发送消息。我目前正在关注this教程,但是,我需要连接到另一个WindowsPhone,而不是服务器。如果没有集中式服务器,这可能吗?如果是这样,我该怎么做呢?如果没有,我会更好地使用PeerFinder或其他一些P2P类型的连接查找器吗?或者,我可以使用PeerFinder找到另一部手机并在那里设置套接字连接吗?我想本质上,我的问题是:如果我想连接到另一个WindowsPhone但没有中央服务器,有哪些替代方案/我有哪些选择?

sockets - 可以创建多少个 tcp 连接

TCP使用端口号来识别主机或Internet套接字上发送和接收应用程序的端点。TCP连接的每一端都有一个关联的16位无符号端口号(0-65535)由发送或接收应用程序保留现在如果我们想创建tcp连接并保持它的事件,我不能超过65535突破65k限制的最佳策略应该是什么?添加多个接口(interface)可以增加创建更多连接的可能性有没有其他策略 最佳答案 TCP要求元组(server-ip,server-port,client-ip,client-port)对于每个连接都是不同的。您可以更改其中任何一个以获得新连接。可以使用不同的服

sockets - 启动与嵌入式 3G 设备的通信

我有一个基于Arduino的设备连接到3G调制解调器,我用它来记录来自远程环境中多个传感器的数据。我希望能够不时地从设备发送命令和流式传输一些数据,然后返回到我的标准网络连接PC。如果远程设备连接到WIFI或其他局域网,这将相对简单,但由于设备通过3G连接,这意味着它位于3G运营商NAT之后,因此与设备建立连接变得困难。当然,该设备可以随时打开到我的主机PC的TCP连接,问题是告诉设备我希望它何时这样做。我需要某种方式来向设备发送某种消息,以通知它我希望它启动与我的PC的连接。我一直在阅读NAT遍历技术,应用程序开发人员使用这些技术在NAT之后的两个设备之间启动P2P通信,例如UDP和

sockets - Swift 中的 TCP 套接字

我正在尝试使用GCDAsyncSocket快速编写一个TCP套接字客户端,但我遇到了很多问题。在我的代码中,我有一个NSTextField(称为框),这是我的代码:进口cocoaclassAppDelegate:NSObject,NSApplicationDelegate{@IBOutletweakvarwindow:NSWindow!@IBOutletweakvarbox:NSTextField!letbsocket=GCDAsyncSocket(delegate:AppDelegate.self,delegateQueue:dispatch_get_main_queue())fun

sockets - 无法让 blocshop TCP sockets-for-cordova 工作

需要让Ionic移动应用程序使用TCP套接字连接到JavaTomcat应用程序服务器。已完成以下工作:根据blocshop站点(https://github.com/blocshop/sockets-for-cordova)安装插件的说明:cordovapluginaddcz.blocshop.socketsforcordova在index.html文件的scriptsrc="cordova.js"下添加了脚本src="socket.js"。当在WebStorm中以Debug模式运行时,结构varsocket=newSocket();导致错误:ReferenceError:Socket

sockets - tcp read() 在 accept() 之后立即

如果我在客户端同步connect()返回后立即调用send(),那么期望在服务器端accept()之后立即调用read()会返回第一段数据是否合理?即,接收SYN-ACK的客户端通常会稍等片刻,看看是否有任何有效负载要包含在完成3次握手的ACK中?我的协议(protocol)中的第一条消息将包含一个身份验证token( 最佳答案 没有。即使您可以依赖行为良好的客户端,但在网络问题中,依赖像这样可靠地发生的任何事情几乎永远是不安全的。此外,当您使用未加密的数据时,各种中间路由器会认为处理数据是他们的职责。使用UDP,问题实际上更简单,

sockets - 为什么此 TCP 连接的一个端点发送带有 RST 标志的数据包?

我正在编写一个尝试执行以下操作的应用程序:创建一个监听可用端口的TCP服务器创建一个连接到服务器的TCP套接字让服务器套接字向客户端写入数据让服务器套接字关闭它的连接端让客户端向服务器写一条消息这就是问题所在。当我尝试运行应用程序时,TCP交换是这样的:前三个数据包建立了three-wayhandshake,第四和第五个数据包是服务端写入数据的传输和确认。正如预期的那样,服务器套接字发送了一个设置了FIN标志的数据包,以指示它正在关闭它的连接端。客户端确认这一点,然后尝试将其数据写入套接字。服务器立即发送一个RST数据包,提前终止连接。为什么会这样?注意:以上捕获是在Windows8.

sockets - Libuv - 单个连接上的多个 TCP 请求

使用Libuv,我实现了一个调用另一个TCP服务器B的TCP服务器A。随着服务器A不断收到请求,我使用从A到B建立的单个TCP连接向服务器B发送请求。鉴于Libuv是异步的和面向回调的,我如何区分服务器B的响应?即如何将正确的结果发送回服务器A的客户端?文档说uv_read_cb回调将被调用多次。我如何知道uv_read_cb是针对哪个原始请求调用的? 最佳答案 TCP是基于流的,而不是基于消息的——您发送的不是单独的消息,而是未区分的数据流。所以简而言之,您尝试做的事情总是很棘手,处理完全取决于您。您需要在TCP之上创建自己的协议

sockets - Azure VM TCP 空闲超时

我在AzureVM上设置FTP服务器时遇到问题。在正常使用中,服务器运行良好。通过被动FTP连接传输大文件会出现问题。设置FTP-Server软件是一个FileZilla服务器。AzureVM终结点、Windows防火墙和Filezilla配置为使用端口10000-10009进行被动连接。客户端是第3方设备。问题在持续时间超过4分钟的大文件传输中,连接会出现空闲超时。我找到了一个Microsoft博客条目,其中写道:“当FTP传输大文件时,传输耗时可能会超过4分钟,特别是如果VM大小为A0。任何时候文件传输超过4分钟,AzureSLB都会使空闲TCP超时/21连接,这会导致在传输所有数