草庐IT

tcp_probe

全部标签

客户端/服务器之间的 C++/Winsock TCP 发送/接收问题

当我连续发送然后在客户端接收时,我遇到了通过套接字进行客户端/服务器通信的问题。示例:案例A:ClientServersend(...);----------->While(recv(...)>0){send(...);----------->print(message);send(...);----------->}recv(...);----------->Send(...);服务器收到3条消息并发送最后一个应答,但客户端的接收失败,并出现SOCKET_ERROR,WSAGetLastError()值为10060。使这种情况起作用的唯一方法是在客户端最后一次发送之后添加shutdo

Java 和 TCP 消息 - 每次在不同端口发送的消息

我对网络和使用网络通过编程发送消息非常陌生。无论如何,我有一个客户端和服务器java命令行应用程序(服务器在具有桥接网络适配器的同一台机器上的VM中运行,主机到guestping工作,反之亦然),并且它会出现在服务器端,每个它收到的消息来自不同的端口。这是正常行为吗?当机器用完所有端口时会发生什么?Java的库是否会在完成端口后智能地关闭端口?所以基本上,这甚至是个问题吗?如果是,我该如何修复它?来自服务器的输出,然后是下面列出的客户端代码。发送一些消息后的服务器输出:Received(/192.168.1.122:59628):shsfhReceived(/192.168.1.122

tcp - 为什么 TCP 限制为 60 字节的 hader?

摘自《TCP/IPIllustrated,Volume1TheProtocols》17.TCP:传输控制协议(protocol)Theheaderlengthgivesthelengthoftheheaderin32-bitwords.Thisisrequiredbecausethelengthoftheoptionsfieldisvariable.Witha4-bitfield,TCPislimitedtoa60-byteheader.Withoutoptions,however,thenormalsizeis20bytes.为什么TCP限制为60字节的hader?在我看来1)hea

python - 客户端 Python 在没有 socket.close() 的情况下关闭我的 TCP 连接

我正在用Python开发一个TCP客户端,我遇到了下一个问题。我连接到服务器,我向它发送一些数据,它用预期的数据响应我,但在此之后我自己的应用程序(客户端)发送[FIN,ACK](用wireshark检查)。这是我的客户端应用程序:try:sock=socket(AF_INET,SOCK_STREAM)sock.bind((my_ip,my_port))sock.connect((sendAddress,sendPort))sock.send(joinRequest)joinResponse=sock.recv(18)printjoinResponseexceptsocket.time

tcp - 更改 tcp_rmem 和 tcp_wmem

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭9年前。Improvethisquestiontcp_rmem_default和tcp_wmem_default的最小值是多少?因为我在做tcp调整,我的窗口大小是6250字节(

TCP:半关闭连接上的数据

我正在实现TCP堆栈,但遇到了半关闭连接的问题。我的实现充当服务器端。客户端建立连接,然后发送一些数据,然后发送“FIN”消息。然后服务器确认来自客户端的数据,发送它自己的一些数据,然后才关闭它的一半连接(发送“FIN”)。问题是客户端不确认服务器在半关闭连接上发送的数据,也不确认其最终的“FIN”消息。根据netstat,客户端处于FIN_WAIT2状态。在服务器不发送任何数据的相同场景中,事情进行得很顺利。有问题的客户端是netcat,所以我认为问题出在我这边:)屏幕截图可用here.实际的PCAP文件可用here.我的问题是,一般来说,对于在半关闭连接上发送的数据,我应该期待AC

c - 使用 TCP 在 C 中发送两个字节

我想知道发送两个字节作为一个整体或一个字节数组是否有任何绊倒或跌倒。假设我要发送uint16_t。像uint8_t[2]这样发送两个字节的数组还是一次只发送16位更好? 最佳答案 你需要记住的主要事情是endianness.也就是说,字节被解释的顺序在不同的平台上是不同的。例如,您的IntelCPU可能会将字节字符串0x010x00解释为数字1,但其他人的PowerPC会将该字节字符串解释为数字256。在构建网络协议(protocol)时,牢记此类问题非常重要。(您可能会看到像GoogleProtocolBuffers这样的东西,它

python - 使用 Python 以特定速率发送 TCP 消息

我试图通过向服务器发送TCP消息来生成一些到服务器的流量。为此,我使用了一个Python脚本,它打开一个TCP套接字,然后通过它发送一些数据。收到回复后,TCP连接关闭。问题:我希望能够预定义脚本向服务器发送请求的速率,例如:每秒5条消息。但是,我不知道如何通过Python编写脚本:(。任何人都知道如何做到这一点(一个简短的例子会很棒!;)?提前致谢。注意:我可能需要增加一个额外的难度:因为服务器必须回复,我想我必须让脚本异步工作......这样,我可以无需等待对先前请求的回复即可发送请求... 最佳答案 您正在寻找的是tokenb

TCP SYN 和 TCP RST 的 TCP 序列和确认值

我正在发送一些TCPSYN数据包以获得TCPRST的返回。为了识别每个探测器,我在TCP序列字段中包含一个计数器。我注意到以下几点:当SYNprobe中的sequencenumbers为0,1,2,3...时,RST报文有ack=1,2,3,4...,即ack=syn_seq+1:12:17:27.181993IPX.X.X.X.10104>Y.Y.Y.10114:Flags[S],seq0,win8192,length012:17:27.182008IPY.Y.Y.Y.10114>X.X.X.X.10104:Flags[R.],seq0,ack1,win0,length012:17:

通过 Socket 进行 Java TCP 通信

我正在尝试使用TCP通过套接字进行通信。需要发送的数据是绘图,同时它正在绘制。因此,选择是发送所有点,或仅发送形状(点系列)。如果立即绘制会很好,发送点数似乎更好。它仅供本地使用,因此大量数据应该不是问题。现在我遇到的问题是了解套接字的工作原理。目前我的代码如下:while(true){try{Thread.sleep(10);}catch(InterruptedExceptione){}switch(connectionStatus){caseCONNECTED:if(isHost){try{oos.writeObject(myObject);}catch(IOExceptione)