草庐IT

Flask-Sockets

全部标签

sockets - Clojure TCP 客户端的测试工具

我正在编写一个TCP客户端来连接繁忙网络上的节点、向其发送消息并从中读取响应。我无权访问在这些节点上运行的代码,因此我必须非常仔细地调整通过网络发送的TCP消息。我决定从网络上收集一堆实时TCP数据,并将其用作测试我的客户端的基础-给定这些输入参数,确保传输的二进制呈现为十六进制我期待看到。在这一点上,我要么启动Wireshark并弄清楚如何过滤我正在发送的数据包,要么实现一个非常简单的TCP服务器等待连接,将传输的二进制文件吐到磁盘(可能已处理)到十六进制),然后测试我发送的是我期望发送的内容;两者都不像稳健或专业的解决方案。那么:您建议如何为TCP客户端设置测试工具来验证是否输出了

sockets - TCP/IP 套接字服务器并发

我想在UnixC中使用服务器和客户端创建一个社交网络。我知道如何开发有关此架构的一些简约的东西,但我想让服务器并发。你们有什么建议我?当然,不是迭代模型;我也不打算使用fork,因为服务器应该接受客户端,从客户端读取并写入客户端。一些线程方法或多路复用怎么样? 最佳答案 我建议您从多路复用开始。看看这些函数选择http://manpages.courier-mta.org/htmlman2/select.2.htmlepollhttp://man7.org/linux/man-pages/man7/epoll.7.html您可以围绕

sockets - 在 macos 上通过命令行发送 TCP 消息

出于测试目的,我将tcp消息发送到本地服务器,如下所示:echo-e"somemessage"|netcatlocalhost1234使用brewinstallnetcat安装netcat。除了阻塞相当长的时间(大约一分钟)之外,这工作正常。我尝试使用选项“-w1”来指定超时,但这并没有改变任何东西。另一端监听的进程是一个spring-xdtcpsource。有没有其他方法可以发送不会阻塞那么长时间的tcp消息? 最佳答案 我在linux上还没有看到这样的延迟;还没有在OSX上尝试过(它带有nc而不是)。您的流定义是什么?默认的tc

sockets - 如何在应用程序中处理 TCP keepalive

我有一个在VxWorks上运行的TCP应用程序。我为我的TCP连接设置了SO_KEEPALIVE选项。我的应用程序跟踪所有TCP连接并将其放入链接列表中。如果客户端长时间空闲,我们会看到连接正在关闭。netstat输出中未列出连接。由于连接被TCP堆栈关闭,分配给该连接的资源不会被清除。你能帮我弄清楚如果连接由于保持事件失败而关闭时应用程序如何得到通知吗? 最佳答案 TCPkeepalive主要用于防止网络路由器在长时间不活动期间关闭TCP连接,而不是防止您的操作系统或应用程序在其认为适当时关闭连接。在大多数TCP/IP实现中,您可

sockets - 生成后,Tcp 套接字无法在 erlang 中的远程节点上工作,{错误,关闭}?

问题是我在erlang中创建了一个tcp服务器套接字,然后在接受套接字后我想在另一个节点上处理它,但它给出了{error,closed}。一个小演示:--module(tcp_server).-compile(export_all).%%justfortestingstart()->{ok,ListeningSocket}=gen_tcp:listen(4444,[{active,false},binary]),wait_for_next(ListeningSocket).wait_for_next(ListeningSocket)->%%waitingforrequests{ok,S

sockets - 如何通过 tcp 套接字传输大数据

如何在不拆分的情况下传输大数据。我正在使用TCP套接字。这是一场比赛。我不能使用udp,数组中可能有1200个值。我正在以json格式发送数组。但是接收它的服务器就像split了一样。还有像tcp一样发送http请求的选项吗?我需要按顺序回复。而且它应该更快。谢谢, 最佳答案 你不能。HTTP可以分blockTCP将其分段IP将其打包路由器会将其分段...TCP将在另一端重新组装。这里没有问题要解决。 关于sockets-如何通过tcp套接字传输大数据,我们在StackOverflow上

sockets - 在 TCP 套接字上设置 SO_BROADCAST

在我负责处理的现有网络库中,有一个调用setsockopt我不明白在这里您可以看到一个TCP套接字开始创建:[socket]fd(11)domain(2:AF_INET)type(1:SOCK_STREAM)protocol(0:default)紧接着,在IPPROTO_TCP协议(protocol)级别为选项SO_BROADCAST调用setsockopt,选项值为5[setsockopt]fd(11)level(6:IPPROTO_TCP)option(6:SO_BROADCAST)ret(0)option:005000000....根据Beej'sguidetonetworkin

sockets - 我可以在 connect() 调用之后但在 TCP 连接建立之前将 write() 写入套接字吗?

我的实验表明,我可以在connect()调用之后写入一个非阻塞套接字,此时还没有建立TCP连接,并且写入的数据在连接发生后被对等方正确接收(异步)。这在Linux/FreeBSD上有保证吗?我的意思是,当连接仍在进行时,write()会返回>0吗?或者我很幸运,在connect()和write()调用之间成功建立了TCP连接?实验代码:intfd=socket(PF_INET,SOCK_STREAM,0);fcntl(fd,F_SETFL,O_NONBLOCK)structsockaddr_inaddr;memset(&addr,0,sizeof(addr));addr.sin_fam

sockets - 你能在没有互联网的情况下通过 IP/TCP 通话吗?

我想知道是否可以使用socket()在两台计算机之间直接通信,使用以太网电缆直接将一台计算机的端口连接到另一台计算机。问题是,由于两台计算机都没有连接到路由器,因此无法为两台计算机提供IP地址。是否可以创建没有IP地址的套接字? 最佳答案 两台计算机无需路由器即可通过TCP/IP或UDP进行通信。他们只需要IP地址。他们可以通过三种机制获取IP地址:DHCP,当您插入路由器或连接到Wifi网络时通常会发生这种情况。手动IP配置,您可以在其中为每个网络接口(interface)明确配置静态IP地址。Self-assignedlink-

sockets - 为什么许多库没有检测到无效的TCP连接?

TCP具有检测死连接的保持Activity机制,但令我感到惊讶的是,该选项默认情况下处于关闭状态,并且许多库/工具均未使用此功能。如果我正确理解的话,如果来自对等方的所有FIN/RST数据包都丢失了,则在recv调用中阻塞的TCP连接将无法检测到该连接是否实际上已被中止。客户端的超时参数可以缓解此问题,但是许多库也没有设置超时的选项。一个示例是mysql-python连接器没有recv超时选项。另一个示例是Nginx服务器通过proxy_pass与gunicorn后端进行通信,由于其上的死连接,gunicornworker可能会停止响应,但是gunicornworker无法检测到它。如