草庐IT

socket_handle

全部标签

c++ - main : src/unix/core. c:117: uv_close: 断言 `!uv__is_closing(handle)' 失败

当我尝试使用libuv库中的函数uv_close((uv_handle_t*)client,NULL)主动关闭与客户端的TCP连接时,报错"main:src/unix/core.c:117:uv_close:Assertion`!uv__is_closing(handle)'failed."被举报了。我在网上搜索了很多,但仍然找不到解决问题的正确方法。我希望有人能告诉我为什么会出现这个问题以及如何解决它。 最佳答案 您正在尝试关闭已经关闭或处于关闭状态的句柄(即,使句柄从事件变为关闭的过程中的某个位置)。从libuv的代码可以看出,

C# TCP Socket "Blocking"属性不一致

我通过以下方式使用tcp套接字:m_socket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);m_socket.ReceiveTimeout=15;一般流程是我在无限循环中运行m_socket.Receive,在某个时候套接字会长时间变空,但我不想关闭它。相反,我想每15秒继续尝试读取和超时异常。发生的事情是,在第一次套接字变空时,我在15秒后如预期的那样收到超时套接字异常。然后,因为我仍在循环中,再次调用m_socket.Receive-但是这次无法完成非阻塞套接字操作异常被抛出(这

C# tcp socket客户端从服务器下载文件

目前我遇到了这个问题。客户端仅在第一次成功从服务器下载。第二次它不起作用(没有任何反应,没有崩溃)。这是双方的代码:在客户端,在mainForm中,如果我单击下载按钮,我将调用另一个类loginForm的方法sendComment(stringrequest)。在服务器端,服务器端收到客户端的字符串请求后,会调用sendComment(stringlistFiles)。listFiles包含客户端需要下载的所有文件的名称和大小。字符串listFiles格式:"commitRequestmNameusIDfiName1fiSize1fiName2fiSize2..."。客户端收到该字符串

sockets - 如何将 STunnel 用于 TCP 服务器/客户端,其中客户端在端口 39000 上发送

我有一个TCP服务器/客户端,其中服务器监听端口5000,客户端传出端口为39000。我在服务器上设置了Stunnel:[custom]accept=6000connect=5000...所以它接受端口6000上的连接并将其重定向到5000(我的Server.c正在监听)。我尝试通过以下方式在客户端上设置STunnel:[custom_cl]accept=39000connect=192.168.1.3:6000...因此它接受来自端口39000的任何数据并将其发送到端口6000的服务器(假设它位于192.168.1.3)。我的客户有这段代码:client_addr.sin_famil

c++ - socket Recv api 返回意外值

这是客户端代码。服务器连续发送数据。在这里,我正在查看13(header长度​​)字节的消息,获取在消息本身中编码的数据大小,并创建MESSAGE_HEADER_LENGTH+DATA-LENGTH的缓冲区大小。获得总消息大小后,我使用第二个recv从套接字读取数据。在初始连接设置和服务器与客户端之间的问候消息交换期间,它工作正常但是当服务器发送连续流时说(当我们在客户端服务器上单击按钮发送固定长度的连续消息,间隔为5000毫秒)recv无法正常工作并且recv缓冲区接收原始消息,其前面是垃圾或某个时间空字符串。#defineMESSAGE_HEADER_LENGTH13...whil

java - Async Boost 写入 Java Socket - 传入字节数组有时部分为 0?

我有一些C++代码正在写入Java程序正在读取的套接字。C++程序使用boost::async_write传输字节,然后由Java程序读取。async_write调用的前4个字节对应于底层数据段的大小。由于大小由该header明确确定,因此Java代码可以使用BufferedInputStream的“读取”方法填充实际数据大小的字节数组。虽然这似乎几乎每次都能正常工作,但有时InputStream读取的字节数组包含其缓冲区末尾的清零数据。每50000条消息中大约有1条以这种方式“损坏”。缓冲区中清零数据开始的位置各不相同。尽管我可以捕捉到这一点并抛出消息,但我想知道这是否是预期的表现?

c# - 在 socket.connectAsync 中捕获 SocketException

我正在为WP7构建一个应用程序。我正在努力建立TCP连接代码namespaceTCP{publicclassSocketEventArgsExtension:SocketAysncEventArgs{publicEventHandler_onConnectionCompleted;publicOnCompleted(EventHandlerhandler){base.completed+=handler;_onConnectionCompleted=handler;}}}namespaceTCP{publicclassTCPSocket:Socket{publicTCPSocket()

sockets - (建议): Libraries for packet crafting,捕获和分析

Closed.ThisquestiondoesnotmeetStackOverflowguidelines。它当前不接受答案。想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。5年前关闭。Improvethisquestion我想我在标题中做了总结。关于这个问题,我一直在评估实用程序的选择,这些实用程序使我能够制作,捕获和分析TCP/IP数据包。我对网络编程非常陌生,现在仍在学习,但是在这一点上,我想编写一个建立TCP连接的程序。这是我的目标(长期到短期):部署并编码一个系统,该系统可以在给定NATS后的两台计算机之间建立ssh连接,这些计算机具有本地主机名(即f

c# - XNA TCP Socket多次发送丢包

我为WindowsPhone7开发了一款不错的免费游戏,名为Domination,尽管发布时间较早,但还是相当成功!现在,我正在开发一个在线多人游戏版本,它涉及有趣的功能,现在我已经接近尾声,我遇到了一个大问题。奇怪的数据包丢失,或类似的事情。我有一个重现问题的示例。我有一个服务器。我有一个WinForm客户端我有一个XNA客户端重现问题的步骤:1)启动服务器,winform和游戏(你需要一个模拟器和WP7SDK)2)现在,您按下GO按钮,表单将打开到服务器的TCPchannel3)现在,您按下模拟器上的屏幕,表单将打开到服务器的TCPchannel4)现在,每次您按下屏幕模拟器,或w

sockets - 用于发送控制台消息的 TCP/IP 默认端口?

是否有专用端口(低于1024)专门供客户端将基于文本的控制台输出发送到服务器?我已经广泛搜索但无济于事。如果有的话,发送基于文本的控制台输出的最佳端口是什么(低于1024)? 最佳答案 端口只是一个数字。可以看到wellknown/etc/services中的端口分配。您需要一个服务器应用程序在给定端口上监听以接受您的输入。有许多远程终端协议(protocol)及其实现,其中有Telnet。(端口23)和SecureShell或SSH(端口22)。测试套接字客户端的最简单方法是设置netcat在服务器上监听您想要的任何端口(在下面的