草庐IT

WSA_IO_PENDING

全部标签

c++ - 在我的代码中出现这个 "10038 wsa socket"错误

我目前正在尝试实现一个类来创建和使用TCP连接。(我是c++的新手,所以我可能忘记了一些明显的东西,尽管我一直在认真检查我的代码)请注意,稍后我将实现第二个类来处理新连接,因此代码的某些部分不完整/安排不当,我希望这不会打扰您理解它。这是我的问题:服务器和客户端似乎都工作正常(我一直在检查我的监听、绑定(bind)、连接功能:没有错误)而且我显然能够与客户端发送数据,但是当我尝试读取它时从服务器,我收到WSA错误10038(这意味着我正在无效套接字上执行recv())。我已经查了几天了,似乎找不到我的错误。除了代码中的测试之外,我还使用了“netstat-an-ptcp”来检查连接状态

tcp - Akka IO TCP 接收数据

我正在阅读有关UsingTCP的文档并尝试理解TCP从服务器接收数据是多么简单。让服务器向每个连接的客户端发送数据流。caseReceived(data)=>//dosomewithdata,wheredata:ByteString那么什么是数据。以字节为单位的数据大小是多少?我的意思是客户不断收到一些数据。每个这样的data包含多少字节?在哪里配置? 最佳答案 它是任意的,没有在任何地方配置。你得到了你还没有得到的任何东西,当它决定给你一些数据时,实现恰好必须给你。处理此类通知的典型方式如下:如果我们从上次通知中保存了任何数据,请

html - 带有 node.js/socket.io 的客户端 tcp?

我是node.js/socket.io的新手,所以我真的不知道我在做什么,但我在服务器端有这个:varapp=require('net'),fs=require('fs')varserver=app.createServer(function(socket){socket.write("Echoserver\r\n");socket.pipe(socket);socket.on('data',function(data){console.log(data);});});vario=require('socket.io').listen(server)server.listen(81);

Java 阻塞 IO - 写操作有什么优势吗?

在Java的阻塞IOAPI中,accept()阻塞直到连接可用,read()阻塞直到输入可用。但是write()是否也为不同的阻塞IOOutputStreams阻塞?那么write()在FileOutputStream和SocketOutputStream(TCP)类中阻塞多长时间?编辑:或者更笼统地问:非阻塞IO对写操作有什么优势吗? 最佳答案 Butdoeswrite()blockalsofordifferentblockingIOOutputStreams?Sohowlongdoeswrite()blockinFileOutp

c++ - async_connect 在 boost::asio 中阻塞 io_service::run_one()

我正在尝试运行以下代码:some_sock.async_connect(...);//handle_connect()setsthe'condition'flagboost::asio::deadline_timert(ios,boost::posix_time::seconds(2));while(t.expires_from_now()>=boost::posix_time::seconds(0)){ios.run_one();if(condition)return;}理想的行为是在计时器t到期后(2秒后)从run_one()返回。实际上,run_one()会阻塞,直到收到SYN-

node.js - 在 socket.io 中,client.id 什么时候改变?

如果服务器使用socket.io连接到websocket客户端,会导致client.id更改的事件是什么?服务器重置客户端打开一个新连接还有其他的吗,比如超时? 最佳答案 当客户端连接到socket.io服务器时,会为连接生成新的id。并且没有其他地方生成id。服务器重置、客户端打开新连接、超时(和重新连接)——所有这些都会触发新id的创建,因为实际上客户端必须创建到socket.io服务器的新连接。 关于node.js-在socket.io中,client.id什么时候改变?,我们在S

c++ - 如何在进程生命周期的最后执行网络 IO?

我正在用C++开发一个DLL,它需要使用write()通过(先前建立的)TCP/IP连接写入一些数据。称呼。准确地说,DLL应该在进程停止时通过网络发送一点“进程12345在2007-09-2715:30:42终止,i的值为131”消息。不幸的是,我所知道的检测进程正在结束的所有方法显然都太晚了,任何网络调用都无法成功。特别是,我尝试了以下方法和write()调用在每种情况下都返回-1:调用write()来自全局对象的析构函数。调用write()来自使用atexit()注册的回调函数.调用write()来自DllMain(如果reason参数是DLL_PROCESS_DETACH)。我

java - 尝试用非阻塞 IO 打包 TCP 很难!难道我做错了什么?

哦,我多么希望TCP像UDP一样基于数据包![查看评论]但是,唉,事实并非如此,所以我正在尝试实现我自己的数据包层。这是到目前为止的事件链(忽略写入数据包)哦,我的数据包结构非常简单:两个无符号字节作为长度,然后是字节[长度]数据。(我无法想象它们是否更复杂,我会在if语句中听到我的耳朵!)Server处于无限循环中,接受连接并将它们添加到Connection列表中。PacketGatherer(另一个线程)使用Selector来确定哪些Connection.SocketChannel已准备好读取。它遍历结果并告诉每个Connection到read()。每个Connection都有一个

python-3.x - Python 异步 io 流

我正在查看asyncio文档中的以下代码。importasyncioasyncdeftcp_echo_client(message):reader,writer=awaitasyncio.open_connection('127.0.0.1',8888)print(f'Send:{message!r}')writer.write(message.encode())data=awaitreader.read(100)print(f'Received:{data.decode()!r}')print('Closetheconnection')writer.close()awaitwrite

c# - 带有 socket.io (nodejs) 的 tcp 客户端

我需要一个连接到C#应用程序的nodejs服务器,我不喜欢使用第三方库,所以我一直在尝试使用TcpClient,服务器是这样的:vario=require('socket.io').listen(8000);io.socket.on('connection',function(socket){console.log("connected");}在C#项目上:varclient=newTcpClient(Server,8000);Sockets=client.Client;if(!s.Connected){s.SetSocketOption(SocketOptionLevel.Socke