草庐IT

system_read

全部标签

c# - System.Argument 异常 :Specified argument was out of range of valid value

经过多次修复后,我仍然遇到一个令人讨厌的错误。我使用VS2013的DeveloperCommandPrompt调试和运行我的服务器,并使用VS2013运行客户端。首先我运行我的服务器没有任何问题,但是当我启动客户端时,将数据放入textbox然后点击发送问题出现了。这是解决问题的服务器端代码。IPAddressipaddr=IPAddress.Parse("127.0.0.1");TcpListenerserverSocket=newTcpListener(ipaddr,8002);intrequestCount=0;TcpClientclientSocket=default(TcpC

sockets - tcp read() 在 accept() 之后立即

如果我在客户端同步connect()返回后立即调用send(),那么期望在服务器端accept()之后立即调用read()会返回第一段数据是否合理?即,接收SYN-ACK的客户端通常会稍等片刻,看看是否有任何有效负载要包含在完成3次握手的ACK中?我的协议(protocol)中的第一条消息将包含一个身份验证token( 最佳答案 没有。即使您可以依赖行为良好的客户端,但在网络问题中,依赖像这样可靠地发生的任何事情几乎永远是不安全的。此外,当您使用未加密的数据时,各种中间路由器会认为处理数据是他们的职责。使用UDP,问题实际上更简单,

redis.service - redis-server Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor p

对有关redis的配置和安装,卸载,看redis的相关配置当启动redis的时候出现以下信息[root@wgf/]#systemctlstatusredis●redis.service-redis-serverLoaded:loaded(/etc/systemd/system/redis.service;enabled;vendorpreset:disabled)Active:failed(Result:exit-code)since日2023-05-0712:08:56CST;3sagoProcess:7746ExecStart=/usr/local/bin/redis-server/usr

c++ - boost::asio 在 async_read 中复制输入数据

最近从libevent转成boost::asio,一周后发现一个奇怪的现象:当我从客户端读取数据时,有些数据好像是重复的,好像库没有'不必将其标记为已读(或类似的东西)。我的“读取”方法如下所示:voidclient::doRead(){deletereadBuffer;//gettingridofolddatareadBuffer=newSerializedBuffer((uint)READ_BUFFER_SIZE);readBuffer->position(0);asio::async_read(socket,asio::buffer(readBuffer->bytes(),REA

c++ - boost read()永远不会返回,即使在服务器(ssl)boost上执行了写入

我有一个异步运行的服务器和一个同步运行的客户端。客户端和服务器进行握手,然后进行SSL握手。客户端向服务器发送消息,服务器读取消息(我可以正确打印出来),然后服务器发回响应boost::async_write。响应离开服务器,读取在客户端boost::read()上执行,但客户端永远不会从读取命令返回。最终请求超时并抛出异常(requesttimedout)。服务端是异步的,客户端是同步的。请注意,在没有SSL的情况下,一切正常,但在使用SSL的情况下,上述情况就会出现。我在Wireshark中看到握手工作正常并且SSL和TCP握手都是正确的。此外,当客户端发送第一条消息boost::

C#:System.Net.Sockets.TcpListener 有时没有正确关闭套接字

在我的一个项目中,我实现了一个小型HTTP服务器来流式传输连接的网络摄像头的视频数据。对于此任务,我使用.NETFramework4.5中的System.Net.Sockets.TcpListener,它监听预配置的端点并使用AcceptSocketAsync()mtehod等待传入请求。您可以在下面看到相关的代码部分:this.server=newTcpListener(endpoint);this.server.Server.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.Linger,newLingerOptio

sockets - POSIX TCP 套接字上的保持事件失败是否会导致挂起的 read() 返回?

给定以下事件序列:read()在启用了保持事件且没有可用数据的POSIXTCP套接字上执行。keep-alive机制决定连接断开。假设SIGPIPE被忽略,read()会返回吗? 最佳答案 它将返回-1和errno==ECONNRESET。 关于sockets-POSIXTCP套接字上的保持事件失败是否会导致挂起的read()返回?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

c# - NetworkStream:ReadTimeout 及其效果 Read()

我对如何使用ReadTimeout以及它如何影响Read()感到困惑。当尝试读取网络流时,有3种情况,假设我们正在尝试读取X个字节:数据可用,字节数据可用,bytes=X数据可用,字节数>X没有可用数据,ReadTimeout>0没有可用数据,ReadTimeout=0文档有点模棱两可,没有明确提及Read()调用中的ReadTimeout,或者ReadTimeout是否影响Read()调用。Thismethodreadsdataintothebufferparameterandreturnsthenumberofbytessuccessfullyread.Ifnodataisavai

c - Linux TCP/IP 诊断为什么在 C 程序中 TCP/IP read() 返回 0

我有许多C程序在Linux主机(RHEL6.6)上运行。它们与同一主机上的其他应用程序有TCP/IP连接。每个连接上的流量很少。每隔一段时间,对同一主机上进程的其中一个套接字的read()调用会返回0。这些套接字通常在应用程序的生命周期内保持不变,因此它们在正常操作期间不会完全关闭。我希望如果发生错误,例如另一端崩溃,read()将返回-1并设置errno。所以,问题是-除了TCP/IP连接被另一端彻底关闭(shutdown(fd);close(fd))之外,是否还有其他原因会导致read()调用返回0?read()的手册页指出仅在EOF时返回0,而recv()手册页指出它返回“当对等

asynchronous - 我如何 read_until future 链中的 tokio::net::TcpStream?

我想从TcpStream读取数据,直到遇到“\0”。问题是tokio::io::read_until需要流为BufRead。fnpoll(&mutself)->Poll{matchself.listener.poll_accept()?{Async::Ready((stream,_addr))=>{lettask=tokio::io::read_until(stream,0,vec![0u8;buffer]).map_err(|_|...).map(|_|...);tokio::spawn(task);}Async::NotReady=>returnOk(Async::NotReady