草庐IT

send_hosts

全部标签

c - 客户端断开连接后第一次调用 'send' 时未获得 sigpipe

我正在开发一个TCP服务器端应用程序,它将数据转发到客户端。我面临的问题是,如果我的客户端断开连接,我会尝试在我的服务器端应用程序中找出哪些数据已发送,哪些未发送。我的研究表明,基本上有两种方法可以找出答案:1)从socket读取并检查FIN信号是否返回2)在发送调用中等待sigpipe信号第一个解决方案对我来说似乎不可靠,因为我不能保证客户端不会发送任何随机数据,因此即使它不应该使我的测试成功。第二个解决方案的问题是,我仅在调用send之后的X之后获得sigpipe,因此无法保证哪些数据真正被发送,哪些没有。我在SO和其他网站上读到,sigpipe只应该在第二次调用send之后出现,

c# - 套接字异常 (0x80004005) : An existing connection was forcibly closed by the remote host

希望有人可以帮助解决这个异常(exception)。我们的客户端应用程序最多可以生成3个服务器应用程序(新进程)并通过TCP与每个应用程序进行通信。这些在出现提示时又生成一个jvm(服务器应用程序本质上是一个通过共享内存与jvm通信的包装器)。当我将每个jvm上的内存设置为大约25gb(我有8gbram)时,它不会运行3个服务器应用程序中的任何一个并抛出上述异常。当我将它设置为10gb时,它将运行其中一个,但在我尝试启动第二个jvm时抛出该异常。当我尝试启动jvm(在它进行第一次java调用之前打印日志语句)时似乎发生了异常,但是此异常仅在客户端捕获。我想知道这是否是服务器端的stac

heroku - 使用 Ruppell 的套接字插件在 Heroku 上托管 TCP 服务器时出现 "Connection closed by foreign host"错误

我正在尝试在Heroku上托管一个简单的TCP服务器。我正在使用Ruppell'sSocketsHerokuaddon.我的Procfile看起来像这样:web:bundleexecrubyweb.rb-e"production"-p$PORTsocket:./lib/sockets-connect/rs-connruby./tcpserver.rbtcpserver.rb看起来像这样:require'eventmachine'moduleEchoServerdefpost_initputs"--someoneconnectedtotheechoserver!"enddefreceiv

c - TCP 连接中链接断开时的 send() 函数行为

场景如下:AB我在A和B(基于Linux的机器)上都使用非阻塞套接字。A和B有一个TCP连接,突然连接它们的链路断开(该链路可能不是直接链路)。现在,在链接断开后,当在A端调用send()函数将一些数据发送到B时,它会成功返回(即返回要发送的字节数)。这种行为的原因是什么,当我们知道远程端将无法接收此数据时,当链接断开时? 最佳答案 这是正常的预期行为。whenweknowtheremotesidewillnotbeabletoreceivethisdata好吧,也许您知道,因为您是您拔下电缆的人并且您不会再将其重新插入,但是计算机

c++ - 套接字 : send() function returned 'Broken Pipe' error

我是套接字编程的新手,我正在尝试使用C++中的send()函数将一些数据包发送到服务器,但是在将数据包发送到服务器。你能帮我解决以下几点吗?当send()函数返回“Brokenpipe”错误时?套接字编程中出现“Brokenpipe”错误的原因是什么?send()函数出现“Brokenpipe”错误的解决方案是什么?注意:我使用命名套接字在客户端和服务器之间进行通信。 最佳答案 Whensend()returnsthe"Brokenpipe"errors当您写入已被对等方关闭的连接时。Whatarethecausesfor"Brok

c++ - 发送大量数据后,我的 send() 调用导致我的程序完全停止。这怎么可能?

所以基本上我正在用C++制作一个在Linux上运行的MMO服务器。起初它工作正常,但在50个客户端可能40秒后它会完全暂停。当我调试它时,我发现它停止响应之前的最后一帧基本上是syscall(),此时它消失在内核中。一旦它消失在内核中,它甚至不会返回任何值……这完全令人费解。50个客户端每250毫秒发送23个字节。然后将这23个字节广播给所有其他49个客户端。这个过程开始变慢,然后最终完全停止,内核永远不会从send()命令的系统调用中返回。这里有哪些可能的原因?这真的让我发疯!我发现的一个选项是强制延迟的Nagles算法。我已经尝试切换它,但它仍然会发生。编辑:程序卡在这里。具体来说

sockets - TCP 中的 send() 函数是否保证按顺序到达?

众所周知,send()的返回值可以小于length,表示到达的是消息的一部分,而不是全部。我应该发送2个数据包,内容分别为“ABC”和“DEF”,长度为3。我想在调用send()传输“ABC”后通过send()发送“DEF”。但是,有一种情况是“ABC”的send()的返回值小于它的长度3。我认为消息可能没有按顺序传递。例如,如果“ABC”的返回值为2,则接收到的消息为“ABDEF”。TCP中的send()函数是否保证按顺序到达? 最佳答案 首先,send()本身不保证任何东西,send()只是将您要通过网络发送的数据写入套接字的缓

java - 错误 :The TCP/IP connection to the host has failed. java.net.ConnectException:连接被拒绝:连接

我正在使用window7NetbeansIDE7.1.2SQLServerManagementStudioExpress2005JDK1.6连接数据库时出现以下错误:com.microsoft.sqlserver.jdbc.SQLServerException:TheTCP/IPconnectiontothehosthasfailed.java.net.ConnectException:Connectionrefused:connect我的连接字符串是:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Conne

c# - wcf "An existing connection was forcibly closed by the remote host"关闭客户端后

我在关闭客户端程序后收到错误消息“远程主机强行关闭了现有连接”。我添加了这段代码以确保在程序关闭时关闭客户端连接。我还有一个关闭客户端的按钮,该按钮可以正常工作。privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){try{client.Close();}catch(CommunicationExceptionex){client.Abort();}catch(TimeoutExceptionex){client.Abort();}catch(Exceptionex){client.Abort();throwe

telnet报错no route to host解决

可能没有覆盖到所有出现noroutetohost的场景,这里只提供自己实际遇到的问题的解决办法。telnetIPPort的时候,报错noroutetohost一开始以为是不靠谱的网络同事又没搞好。结果发现自己孤陋寡闻了。报这个错可能是防火墙及iptables的问题。可以排查下源主机和目标主机是否开启了防火墙或者iptablessystemctlstatusfirewalldserviceiptablesstatus如果发现开启了防火墙,可以修改相关规则,重新试一下。修改iptables可以用vim/etc/sysconfig/iptablesfirewalld的修改方法应该是用firewall