草庐IT

tcp_probe

全部标签

bash - Debian:使用 TCP 的 Bash 电子邮件

在服务器上,我目前在使用Swiftmailer生成的日志中间歇性地收到“421意外故障,请稍后再试”。为了调试它,使用命令:openssls_client-crlf-connectwww.somesite:443我可以成功发送邮件。我想将所有谈判等放在bash脚本中,以便我重复运行它并查看是否有任何特定情况会引发421错误。我遇到过几个使用语法的例子:exec$fd"/dev/tcp/${SERVER}/${PORT}"然而,正如其他答案中所述,在构建bash时需要启用此功能,而Debian不启用此功能。除了使用此设置(我认为是--enable-net-redirections)重新编

python - 无法通过带有 SO_BINDTODEVICE 的两个 NIC 之间的 NAT 执行 TCP 握手

我正在尝试将我的计算机连接到NAT的两端(由OpenWRT运行)并通过NAT建立TCP连接:我在我的第一个NIC(eth0,ip地址129.104.0.1)上运行一个DHCP服务器,并将它连接到路由器的WAN端口(ip地址129.104.0.198)我将我的wifi(wlan0,ip地址192.168.1.119)连接到NAT后面的路由器SSID我正在使用python和SO_BINDTODEVICE选项通过NAT在服务器(在eth0上)和客户端(在wlan0上)之间发送数据包:对于服务器:self.server=socket.socket(socket.AF_INET,socket.S

tcp - Kryonet 服务器发送原始字节数组

简单的问题,是否可以用Kryonet发送原始字节数组数据包?客户端不使用Kryonet,将读取字节谢谢 最佳答案 Kryonet基于通过NIO的简单tcp通信以及内置的kryo序列化。没有kryo序列化的Kryonet只是tcp客户端/服务器,仅此而已。或者,如果您想要简单的解决方案,您可以只为具有byte[]形式的一个属性的实体创建一个包装器,然后使用客户序列化程序来序列化byte[]。这是进行某些概念验证等的最快方法。 关于tcp-Kryonet服务器发送原始字节数组,我们在Stac

networking - 我什么时候应该考虑使用 TCP 或 UDP?

我知道这两种协议(protocol)之间的区别和优缺点,虽然不是很清楚。好吧,我仍然不清楚如何使用它们,具体来说,在它们之上构建应用程序时我应该使用哪种协议(protocol)?是否存在普遍原则或普遍采用的做法?选择时应考虑哪些因素。例如。对于视频流服务,UDP始终优先于TCP。 最佳答案 TCP-当您发送信息时,您将收到express服务等确认信息。如果没有确认,则重新发送。UDP-无确认。没有重新发送。首先,您应该了解您发送和接收的信息的敏感性。例如,如果您正在处理一些汇款,您当然需要确认银行收到了您的钱,如果连接出现问题,您就

c - 使用 TCP/IP : recv() blocks 的套接字编程

我正在开发一个简单的客户端/服务器项目,它将一大块数据从客户端移动到服务器。我使用TCP/IP。服务器设置监听套接字,客户端连接。首先传输一个短的16字节“header”,其中包含一些信息,包括之后要传输的数据量。然后传输大块(大约2MB),即send(socketDesc,(void*)myBuffer,bigChunkSize,0);和recv(socketDescPeer,(void*)myBuffer,bigChunkSize,0)首先,我使用winsock2在Windows下实现了客户端,它可以正常工作。我现在尝试将此实现移植到linux,在这种情况下,服务器端永远不会从re

ios - 由于重复的 TCP SYN 而导致 TCP 连接错误

我的iPhone与Linux服务器建立了TCP连接:iOS-----tcpsyn---->linuxiOS-----tcpsyn---->linuxlinux-----tcpackwithseq=xxx--->iOSlinux-----tcpackwithseq=yyy--->iOSiOS快速重新发送TCPsyn,从而导致两个具有不同服务器序列的TCPACK。iOS使用第一个seqxxx,linux使用第二个seqyyy。所以这个连接不能传输数据。iOS如此快速地重新发送syn是一个错误,但是linux服务器在做正确的事情吗?我该如何解决? 最佳答案

linux - 如何测试用户空间的 tcp/ip 堆栈?

我正在研究用户空间的tcp堆栈(主要是为了好玩),但我在针对unixtcp堆栈进行测试时遇到了一些问题。目前唯一的测试形式是通过单元测试完成的。但是,我想针对真实的内核tcp堆栈测试我的tcp堆栈。我尝试了以下设置但没有成功。使用原始套接字:我编写了一个简单的echotcp服务器,它使用内核tcp套接字接受连接。tcp服务器监听本地主机上的8080端口。我的tcp客户端使用用户空间tcp堆栈。但是,每当客户端向服务器发送syn时,内核都会发送一个tcprst。在我修改iptable以丢弃所有tcprst数据包之后,它有点工作。但是,即使建立了3路syn、syn+ack、ack握手,服务

c++ - 服务器关闭后 TCP/IP 客户端重新连接

我遇到这样一种情况,即客户端连接到的服务器可能会在客户端仍在运行的情况下反复关闭。在当前的实现中,当客户端读取失败时,它将调用close(sockFd)来关闭套接字。然后它将循环尝试重新创建该套接字。这是最佳做法吗?或者是否可以离开套接字并尝试连接到它?编辑:平台是Linux 最佳答案 当您在套接字上遇到除EINTR或EAGAIN/EWOULDBLOCK以外的任何错误时,几乎可以肯定它已死,必须关闭。@abarnert在下面的有用评论中提供了一些其他内容。 关于c++-服务器关闭后TCP

linux - 如何验证 TCP 在 Linux 上保持事件状态

我想在我的linux机器上设置tcpkeepalive。所以我正在做的是运行一个脚本if[`/sbin/sysctl-nnet.ipv4.tcp_keepalive_time`!=200];then/sbin/sysctl-wnet.ipv4.tcp_keepalive_time=200;但我仍然无法与亚马逊的Redshift联系起来。有人可以帮我看看如何检查tcpkeepalive是否真的设置了吗? 最佳答案 要检查keepalive是否处于事件状态,请打开一个连接,不要交换任何数据,并使用tcpdump或类似工具验证数据包是否在

android - 如何从服务器向客户端发送消息(TCP,android 应用程序)

我创建了两个通过套接字连接的android应用程序。客户端向服务器发送图像,服务器显示它。当您触摸服务器上的图像时,它会获取其坐标,现在可以使用了。我需要的是服务器将坐标发送给客户端,但我不知道如何将它们发送给客户端并检索它们,我应该打开一个新套接字吗?我不知道该怎么做。有人可以帮我一下吗?到目前为止,这是我的代码服务器packagecom.example.serverlate;importjava.io.BufferedReader;importjava.io.ByteArrayOutputStream;importjava.io.DataInputStream;importjava