草庐IT

async_receive_from

全部标签

重用套接字时 C# TCP Socket.Receive 问题

前言:我已经被这个困扰了一段时间,但我并没有找到我需要的东西。我有一个C#(.NET3.5)服务。一个线程充当传入TCP连接的异步监听器。当数据进来时,我会产生一个新的工作线程来处理数据,并发回一个确认。在同一服务的第二个线程上,我们发送命令,直到今天它会从数据库收集信息,构建一个新的套接字,连接然后发送命令,我正在使用Socket.Receive调用阻塞和等待响应(或直到发生超时)。一切都很好,直到一个新的客户端需要以如此快的速度(5-10秒间隔)向我们发送数据,以至于我们无法再打开一个新的套接字来获取命令。因此,我开始研究何时需要发送“监听器”线程已连接客户端的命令。如果该客户端当

c# - Async TCP Server 代码示例分析

我正在使用以下代码创建异步TCP服务器:privatevoidSetupServerSocket(){varmyEndpoint=newIPEndPoint(IPAddress.Any,_port);_serverSocket=newSocket(myEndpoint.Address.AddressFamily,SocketType.Stream,ProtocolType.Tcp);_serverSocket.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.KeepAlive,true);_serverSocket.B

c++ - Boost ASIO async_connect 在应该失败的时候却成功了,为什么?

我有一个服务器应用程序,其中我只接受一个带有boost::asio::ip::tcp::acceptor和async_accept的客户端。我运行客户端应用程序并使用boost::asio::ip::tcp::socket和async_connect成员函数成功连接。然后我让客户端崩溃(CTRL-ALT-DEL)。如果我重新启动客户端应用程序并尝试重新连接,它会成功...即使我没有在服务器端重做async_accept。这怎么可能?编辑:如果服务器应用程序未运行,async_connect将失败。 最佳答案 有可能是因为accept

c - 错误 : Invalid argument while trying to accept a connection from a client

我正在尝试使用TCP将客户端连接到服务器。我想我的客户正确地完成了他的工作,但服务器无法接受连接。这是我的代码:服务器:intmain(intargc,char*argv[]){intport,sock,newsock,thread_pool_size,queue_size;structsockaddr_inserver,client;structsockaddr*serverptr=(structsockaddr*)&server;structsockaddr*clientptr=(structsockaddr*)&client;structhostent*rem;socklen_t

c++ - boost::asio::async_read 在换行符上返回文件结尾错误

我正在尝试使用async_read和async_write向服务器发出简单的tcp请求并设置超时。问题是async_read在尝试读取直到传输结束时给出错误,在第一个'\n'上它返回错误(文件结束)。逐行读取字符串时(当eots->at(last_request)='\n')时,它成功读取了整个响应。if(eots->at(last_request)=="")//readuntilend{boost::asio::async_read(socket_,input_buffer_,boost::asio::transfer_at_least(1)//readuntillendorerro

networking - boost::asio tcp async_accept 处理程序未被调用但同步连接工作正常

我有一个TCP客户端,它可以正常调用TCP套接字上的常规连接。但是,对async_connect的调用永远不会触发处理程序。他们都使用几乎相同的代码。区别仅在于调用连接与异步连接。标题#ifndefTCPCLIENT_H#defineTCPCLIENT_H#include#include#include#include#include#includeusingboost::asio::ip::tcp;//HowaboutaninterfaceforoutputtingerrorsclassBoostTCPDebugOutputInterface{public:virtualvoidou

客户端关闭套接字后,C# tcp 异步监听器卡在我的 on_receive 回调中

我有一个监听器套接字,它像TCP服务器通常那样接受、接收和发送。我在下面给出了我的接受和接收代码,它与exampleonMicrosoft'sdocumentation没有什么不同。.主要区别是我的服务器在停止接收数据后不会终止连接(我不知道这是否是一个糟糕的设计?)。privatevoidon_accept(IAsyncResultxResult){Socketlistener=null;Sockethandler=null;TStateObjectstate=null;Taskconsumer=null;try{mxResetEvent.Set();listener=(Socket

解决docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

1、问题:今天做完一个新项目,搭建了一个新的虚拟机,打算使用docker来搭建各种环境,发现拉取镜像报错2、报错信息:Errorresponsefromdaemon:Get"https://registry-1.docker.io/v2/":dialtcp如下:3、解决过程一看,挺新奇,一开始只是简单的以为我打错命令了,以为docker没有这个镜像,然后查询下mysql镜像:dockersearchmysql发现是有的,说明我没有打错,然后翻译了一下,显示说:来自守护程序的错误响应:Get“https://registry-1.docker.io/v2/“:拨号tcp然后我重启docker试试

c++ - 提升 asio receive() 与 read()

boost::asio::ip::tcp::socket有两种读取流的函数。我假设他们的语义不同。有人可以概述一下吗,我有文档lookedthrough没有澄清这一点。 最佳答案 正如文档中所说:Thereceive()operationmaynotreceivealloftherequestednumberofbytes.Considerusingtheread()functionifyouneedtoensurethattherequestedamountofdataisreadbeforetheblockingoperatio

c# - Java <-> C# 套接字 : cant receive messages

我需要一个自己写的java服务器和C#客户端之间的socket通信,问题是C#客户端收不到来self的Java服务器的任何消息,但可以向我的Java服务器发送消息。我的工作流程:Java:创建服务器Java:WAITING客户端连接c#:创建客户端c#:建立与服务器的连接c#:向服务器发送消息Java:收到消息java:发送消息给c#客户端c#:从服务器接收消息Java服务器代码:publicclassCommunicator{privateintm_port;privateSocketm_socket;privateServerSocketm_serverSocket;publicC