草庐IT

commit丢失

全部标签

delphi - 首次读取 TcpServer 后接收缓冲区数据丢失

我尝试在客户端发送长度小于255的数据。我尝试使用此协议(protocol)发送数据:Lenghth+StringByte+stringsample:string=ABCDsentdata=4ABCD这是我的服务器端代码:procedureTfrmServer.tcpsrvr1Accept(Sender:TObject;ClientSocket:TCustomIpClient);vara:arrayofbyte;I:Cardinal;mystr:string;b,Len:Byte;beginClientSocket.ReceiveBuf(b,1,0);//firsttry:getlen

c# - 为什么我的 TCP 应用程序在快速发送时会丢失一些数据包

我正在使用异步套接字在C#中为每个服务器应用程序编写多个客户端。连接上的每个客户端发送10个项目。问题是,当快速启动大量客户端时,似乎每个客户端发送的项目少于10个,有时它什么也不发送,服务器只记录它们的连接。数据包结构是前4个字节是一个int,其中包含数据大小。这是服务器代码的一部分。每个连接的客户端都有自己的接收缓冲区,BeginReceive应该写入该缓冲区。privatevoidRecieve(IAsyncResultiar)//Calledwhensocketreceivessomething.{Socketserver_conn=(Socket)iar.AsyncState

Delphi XE 7 Indy IRC 检测连接丢失

一切正常,但有时在几个小时后连接可能会丢失。我应该如何检测聊天不再有效?我应该使用PING/PONG事件来检测吗?这种情况很少见,但仍有可能发生。感谢您的建议。 最佳答案 是的,应该使用IRCPING和PONG命令来提高连接稳定性。服务器和客户端可以发送“空”(无操作,心跳)消息来保持连接。如果一方不再收到这些消息,则可以认为连接丢失。如果服务器检测到没有响应的客户端,则服务器可以简单地关闭连接。客户端可以显示一条错误消息并建议用户重新连接或自动重新连接。单独添加无操作(心跳)消息将有助于保持连接稳定,因为一些网络组件可能会在长时间

python - Twisted:在 connectTCP 之后关闭连接而不丢失其他连接

我是Twisted的新手,我正在尝试弄清楚如何实现以下内容。我有一个服务器,它从客户端获取消息。但是,该服务器在收到消息后将消息从客户端发送到另一台服务器。所以它看起来像:Client--->Server1--->Server2因此,Server1本质上既充当服务器又充当客户端。但是,在Server1向Server2发送信息后,我想断开Server1与Server2的连接。我不确定我该怎么做。我现在的工作是客户端向Server1发送信息。然后我稍微修改输入,然后执行reactor.connectTCP()成功连接并将信息发送到Server2。我的问题是如何在不必完全关闭Server1的

java - 即使远程套接字在 Java 中正常关闭,数据也会丢失

我在我的应用程序中使用TCP。即使正常关闭套接字,我也面临数据丢失问题。这是复制场景的两个示例程序。//TCPSender程序不断发送数据publicclassTCPClient{publicstaticvoidmain(String[]args)throwsUnknownHostException,IOException{Socketsoc=newSocket("xx.xx.xx.xx",9999);OutputStreamstream=soc.getOutputStream();inti=1;while(true){System.out.println("Writing"+i);s

c# - 数据丢失 TCP IP C#

这个问题在这里已经有了答案:ReceivingdatainTCP(10个答案)关闭2年前。这是我的代码:privatevoidOnReceive(IAsyncResultresult){NetStateObjectstate=(NetStateObject)result.AsyncState;Socketclient=state.Socket;intsize=client.EndReceive(result);byte[]data=state.Buffer;objectdata=null;using(MemoryStreamstream=newMemoryStream(data)){B

java - 检测 TCP/IP 数据包丢失

我通过如下套接字代码进行tcp通信:publicvoidopenConnection()throwsException{socket=newSocket();InetAddressiNet=InetAddress.getByName("server");InetSocketAddresssock=newInetSocketAddress(iNet,Integer.parseInt(port));socket.connect(sock,0);out=newPrintWriter(socket.getOutputStream(),true);in=newBufferedReader(new

java - 使用 Java 套接字发送文件,丢失数据

我正在尝试使用Java中的套接字将文件从客户端发送到服务器。当我在同一台机器上测试时它工作正常,但是当我在不同机器上测试时,我丢失了大量数据,导致文件损坏。如果我尝试发送一个非常小的文件(这是我的代码:服务器.javapackageedu.mst.cs.sensorreceiver;importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;publicclassServer{privatestaticfinalintPORT=51111;privatestaticfinalintCHUNK_SIZE=1024;p

c++ - 如何检查连接是否丢失

如何检查我与服务器的连接是否丢失?(无论是客户端还是服务器端)我正在使用TCP连接,并且服务器recvunlimit客户端。服务器为每个客户端创建线程。这样我就可以为每个客户接收/发送。 最佳答案 您可以考虑使用TCP-keepaliveoption在套接字上作为一种选择。但是如果在一定时间内没有观察到任何事件,许多NAT和有状态防火墙实际上会丢弃TCP连接。并且这种事件超时可能比TCP支持的周期性保持事件消息更快。出于这个原因,每30-60秒向您的服务器发送一条协议(protocol)消息通常足以保持与NAT相关的连接“有效”。我