草庐IT

non-repeatable-read

全部标签

java - 套接字异常 : Connection Reset when trying to read from socket in Java?

我的应用程序在Java套接字方面遇到了一些恼人的麻烦,似乎在非常基本的层面上失败了。我的部分应用程序需要通过TCP连接写入文件名。接收端代码如下:ServerSocketserverSocket=newServerSocket(4445);Socketsocket=serverSocket.accept();BufferedReaderreader=newBufferedReader(newInputStreamReader(socket.getInputStream()));Stringfilename=reader.readLine();虽然我的发件人代码如下:Socketsock

c++ - TCP 套接字上的 read() 何时返回

有人可以解释一下,我用来从TCP套接字获取数据的读取函数到底什么时候返回?我使用下面的代码从测量系统中读取数据。该系统以15Hz的频率传送数据。READ_TIMEOUT_MS的值为200此外,READ_BUFFER_SIZE的值为40000。一切正常,但实际情况是,read()每秒返回15次,读取了1349字节。通过阅读以下文档中的陷阱5,我预计缓冲区已完全填满:http://www.ibm.com/developerworks/library/l-sockpit/初始化:sock=socket(AF_INET,SOCK_STREAM,0);if(socket阅读:unsignedch

c# - 为什么 NetworkStream.Read 这么慢?

我知道,这里已经有很多类似的问题,但我没有找到让它更快的解决方案或者为什么它这么慢的原因?我们在C#.NET中有一个应用程序需要通过TCP与响应同一TCP流(全部以字节为单位)的设备进行通信。消息的发送速度非常快(大约20毫秒),但是当我们使用NetworkStream.Read()方法(或类似的Socket.Receive())从TCP套接字读取数据时,大约需要600毫秒。我通过在Read方法之前启动秒表并在Read之后立即停止来获得这个数字。我还使用Wireshark记录流量,在那里我看到通信进行得非常快(使用TCPNoDelay和TCPAckFrequency注册表黑客)但是我看

http - 往返时间 Http on non persistent, persistent, persistent with pipelining

网络是我硕士学位的最后一门类(class)。我确实有一个关于如何计算非持久、持久和持久流水线的http往返时间的问题。在花了无数小时阅读有关该问题、从其他大学下载笔记甚至搜索youtube视频后,我无法解决这个问题。为了理解RTT是如何计算的,我们假设一个客户端请求一个包含10个图像的HTML页面。[让传播延迟保持为零。]请按照我的逻辑首先,TCP连接进行的3次握手算作1个RTT。TCP连接关闭时也是如此。1)在非持久性HTTP中,我们必须建立TCP连接,因此到目前为止它是1RTT。因为我们有10个对象,所以我们将有2*10=20个RTT。这导致1RTT+20RTT=21RTT。[另一

c# - 在发送消息中收到所有数据之前,TCPStream.Read 会阻塞吗?

我编写了一个多线程的简单服务器,它使用:clientStream.Read(message,0,4096);阻塞直到客户端发送消息。然后代码继续处理该消息。到目前为止我只用它来发送短命令ex."#login[username][login]"但我担心,当我通过线路发送大量表格数据时,代码可能会在数据全部收到之前继续执行。那么.Read会阻塞直到接收到整个发送的消息,还是在任何数据开始接收时解除阻塞? 最佳答案 依靠Sendtofinish来区分消息是一种糟糕的形式。如果不是出于最简单的原因。我可以远程登录到您的服务器并轻松地使它崩溃

c++ - TCP 套接字 : Where does incoming data go after ack(leaves tcp read buffer) but before read()/recv()?

如果我有一个以200KB/秒的速度传输数据的TCP连接,但我每秒只从套接字read()/recv()一次,那么在哪里那些200KB的数据同时存储?据我所知,数据在ack发送给发送方后离开TCP套接字的读取缓冲区,而且它太小了,无法容纳200KB的数据,同时它在哪里等待,直到它可以被我的客户读取()/recv()?谢谢!!以下答案声称数据在被read()/recv()d之前一收到ACK就离开TCP读取缓冲区:https://stackoverflow.com/a/12934115/2378033“接收器的套接字接收缓冲区的大小决定了在没有确认的情况下可以传输多少数据”会不会是我的假设是错

c++ - OpenSSL SSL_read 失败(错误 :00000005:lib(0):func(0):DH lib)

我正在使用OpenSSL1.1.0f版来加密我的客户端和我无权访问的中继服务器之间的连接。有时,客户端的连接会因客户端的readLine故障而突然终止。错误代码如下:readLine:readStringreturned-1,ErrorMsg-error:00000005:lib(0):func(0):DHlib我确实搜索了这种错误代码的适当原因,每个人(示例this线程)都说在连接建立期间Diffie-Hellmankey交换似乎有问题。但是连接在几分钟内都很好(有时它甚至可能不会发生,并且可能在连接成功后2到3分钟后非常频繁地发生一次)直到它突然终止。这是我的日志中的更多错误SSL

c# - 指示远程主机已关闭连接的 NetworkStream.Read 的替代方法?

关于使用TcpClient类处理TCP/IP连接,除了等待NetworkStream.Read方法返回0? 最佳答案 您可以在TcpClient.Client上使用IOControlCode.KeepAliveValues来保证至少在指定的时间间隔内进行保持事件检查,然后检查TcpClient.Client.Connected属性。如何使用它的示例:structtcp_keepalive{publicintOnOff;publicintKeepAliveTime;publicintKeepAliveInterval;publicun

iOS 编程 : Making an arc4_random not repeat itself using a do while loop

这个问题在这里已经有了答案:What'stheBestWaytoShuffleanNSMutableArray?(12个答案)关闭8年前。在此代码中,第二行遍历数组并输出它接收到的内容及其随机数。但有时我会说同样的话两次,就像它会说“Straub”,然后是“Straub”,然后是“Rusher”之类的东西。我试过做一个“dowhileloop”,但我不知道如何在它不重复的地方设置它。顺便说一句,这是一种快速的编程语言。lettypes=["Alex","Straub","Rusher","Graser"]lettype=types[Int(arc4random_uniform(UInt

ios - SSZipArchive 的 C header 中的 "Include of non-modular header inside framework module"

我正在尝试在我的SwiftiOS项目中使用SSZipArchiveobjc库。我做了什么:创建了一个Objective-C“CocoaTouch框架”按照thisguide将SSZipArchive的Objective-C和C文件导入其中。根据thisanswer将所有Cheader更改为公开根据thisanswer更改build设置以允许非模块化包含框架编译良好。我以前使用这种方式设法在Swift项目中使用Objective-C库,所以我猜这些步骤是正确的吗?现在的问题是,当我尝试在我的项目中导入SSZip并尝试编译时,它会为SSZipArchive的每个C头文件提供“在框架模块中包