草庐IT

Flask-Sockets

全部标签

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-针对低延迟和小数据包的建

sockets - 如何创建将监听特定端口并接受 TCP 连接(非 https)的 servlet

我需要创建servlet,它将监听某个特定端口(如serverSocket.accept()),生成新线程(如普通servlet)并将套接字(或仅输入流和输出流)传递给我的代码。此连接与http无关。我需要读取和写入二进制数据以打开连接。Tomcat可以吗?从哪里开始?我已经搜索了GenericSocket示例,但我看到从GenericSocket继承的servlet仍然必须在web.xml中配置一些url-pattern-但这是特定于http的。 最佳答案 很多年前,当servlet首次引入Java时,关于servlet编程的最好

sockets - Windows Azure 上的 TCP 通信

是否可以在Azure上创建处理套接字(ip:port)的服务以从客户端获取原始tcp数据并将一些数据发回给它们?我对这个话题有点困惑,我在某处读到它是可能的,其他人说这是不可能的。请注意,我要与之通信的设备可以通过tcp将数据发送到给定的IP地址,无法在该设备中将服务器设置为DNS名称。因此,Azure平台提供商是否可以同时提供IP或仅提供DNS名称也是一个重要问题? 最佳答案 Tom,对于任何类型的WindowsAzure角色,您都可以定义tcp端点并为每个端点分配一个特定的端口。然后,您可以启动监听该tcp端点的ServiceH

sockets - SOCK_SEQPACKET 可用性?

当使用原始TCP套接字时,需要进行消息帧化,如here所述,带有长度前缀或分隔符。我今天遇到了“SOCK_SEQPACKET”套接字选项,它显然可以几乎透明地进行消息框架。目前“SOCK_SEQPACKET”在平台和操作系统中的可用性如何?(Windows、OSX、Linux、IOS、安卓...) 最佳答案 如果你使用AF_INET的SOCK_SEQPACKET,这样:socket(AF_INET,SOCK_SEQPACKET,0);您不会获得TCP套接字。如果您的平台支持,套接字将是SCTP套接字。SCTP尚未广泛使用。最新的Li

sockets - TCP - 发送和接收 TCP/IP 数据

我有一个客户端和一个服务器通过标准TCP连接相互通信。服务器配置为以一致大小的x字节block发送数据。客户端还配置为以x字节的block接收数据(即,客户端期望调用TCP堆栈以接收x字节将成功,除非与远程端的连接失败)。是否可以将我的基于TCP的协议(protocol)建立在上述假设之上? 最佳答案 似曾相识WillTCPStreamreadblockuntilalldataisreceived.我意识到它看起来有点不同,但本质上它们是非常相似的问题。不要对数据包大小做出假设。 关于s

sockets - 通过多个套接字传输文件是否比仅使用一个套接字更快?

在这个旧project(从2002年开始),它说如果你将一个文件分成多个block,然后使用不同的套接字传输每个block,它将比使用一个套接字作为一个整体传输快得多。我还记得(很多年前)读过一些下载管理器也使用这种技术。这有多准确? 最佳答案 鉴于具有大窗口或小RTT的单个TCP连接可以使任何网络链接饱和,我看不出您期望从多个TCPsession中获得什么好处。每个新片段都将以慢启动开始,因此传输速率低于已建立的连接。TCP已经有了用于高吞吐量、高延迟连接(“windowscaleoption”)和处理数据包丢失的代码。尝试通过并

sockets - TCP server socket编程为什么要得到两个文件描述符?

我把这个教程用于服务器套接字编程link.对于功能,我对此没有问题,我要问的更多是关于架构设计的问题。请看一下教程。我们实际上看到了两个文件描述符,一个是在调用socket()时,一个是在调用accept()时。为什么我们在创建套接字时获得文件描述符是有道理的,因为我们将套接字视为文件;在接受不同的连接时,我们必须有多个文件描述符也是有道理的。但为什么我们需要两者兼备才能发挥作用? 最佳答案 第一个套接字称为监听套接字。TCP是面向连接的流。每个客户端连接都像文件一样在自己的套接字上运行。如果你只有一个套接字,你将无法区分在它上面收

Windows 7 : sniff TCP sockets to localhost

我想捕获和分析在运行Windows7操作系统的本地主机上运行的两个应用程序之间的TCP通信数据。我尝试使用Wireshark,但Wireshark无法捕获数据,它似乎只是监控网络接口(interface)进/出的数据。能否介绍一些有用的工具来轻松监控本地TCP数据。 最佳答案 wireshark不起作用的原因是因为嗅探器依赖于网络驱动程序堆栈,而Windows不会通过它公开localhost调用。你应该使用SocketSniffer,它查看Winsock调用并监视网络套接字;下载链接位于页面底部。

sockets - 为什么我不应该在端口 80 上运行我的非 Web 服务器软件?

考虑到世界上有这么多严酷的防火墙,我有什么理由不在端口80上运行服务器软件以保证最大可能的可访问性?似乎最常见的防火墙异常(exception)是允许端口80上的出站连接。我知道任何类型的数据包检查仍会阻止我的非HTTP流量,但如果是这种情况,我确定防火墙不会有任何无论如何其他开放的传出端口。如果服务器已经在端口80上有一个网络服务器,是否可以使用某种虚拟主机监听端口80(即myDomain.com:80和myApp.myDomain.com:80同一台机器)? 最佳答案 如果您需要这样做,为什么不使用SOAP接口(interfac