草庐IT

c - 如何检测 TCP 套接字断开连接(使用 C Berkeley 套接字)

我正在使用循环从cBerkeley套接字中读取消息,但我无法检测到套接字何时断开连接,因此我会接受一个新连接。请帮忙while(true){bzero(buffer,256);n=read(newsockfd,buffer,255);printf("%s\n",buffer);} 最佳答案 检测套接字已连接的唯一方法是写入它。在read()/recv()上出现错误将表明连接已断开,但在读取时不出现错误并不意味着连接已建立。您可能有兴趣阅读以下内容:http://lkml.indiana.edu/hypermail/linux/ker

sockets - Netty 服务器如何知道客户端何时断开连接?

我正在制作满足以下条件的Netty服务器:当服务器收到来自其客户端的数据包时,服务器需要执行事务处理A。事务完成后,如果仍然连接,则返回消息给客户端。如果没有,做一些回滚过程B。但我的问题是,当我发送回客户端时,服务器不知道它是否仍然连接。在发送消息之前,我已经尝试按照代码找出它的连接。然而,即使客户端已经关闭了它的套接字,它也总是成功。仅当客户端进程被强制终止时才会失败(例如Ctrl+C)finalChannelFuturecf=inboundChannel.writeAndFlush(resCodec);cf.addListener(newChannelFutureListener

C# TCP 套接字编程 - 确定连接是否已断开

我试图发现一个TCP连接在给定时间间隔后是否在服务器上被丢弃,并编写了以下代码;vartcpClient=newTcpClient();tcpClient.Client.SetSocketOption(SocketOptionLevel.Tcp,SocketOptionName.KeepAlive,true);tcpClient.Connect(Ip,Port);varstatus=tcpClient.Connected?"Connected":"FailedtoConnect";if(connected){Console.WriteLn(string.Format("Connecte

.net - 如何断开 TcpClient 以允许新连接?

我有一个等待新套接字连接的TcpListener。当建立新连接时,一些其他代码服务来自远程用户的消息。我会定期检查新连接,如果建立了新连接,则应删除旧连接。以前我只是打开新连接,大部分情况下都可以正常工作。不过,有时我会在重新使用同一个端口时遇到问题,所以我认为关闭该连接会更好(我认为这也应该给老用户一个连接已终止的指示)。下面的代码是我尝试这样做的,但由于某种原因,断开连接调用似乎无限期地阻塞。有办法阻止吗?...还是我在这里遗漏了其他东西?while(1){//FYI,m_serverisaTcpListener^andm_clientisaTcpClient^//Checkfor

c# - TCP 客户端断开连接

我是TCPClient的新手,我正在尝试制作一个网络摄像头应用程序,该应用程序将每个小图像发送~4kb到另一个将运行相同程序的IP。所以它会同时发送和接收。我遇到的问题是_tcpOut在一次发送后断开连接,这意味着我只能看到一帧。在下面的代码中有两个部分,首先是NewFrameReceived在来自相机的每个新图像上运行,然后发送,另一个方法是将接收到的图片放入图片框的接收方法(目前我自己的来自127.0.0.1):privatevoidfChat_Load(objectsender,EventArgse){//fireuplistenerlisteningThread.RunWork

linux进程不断断开连接

我编写了一个当前在Ubuntu12.04x64VM上运行的服务器应用程序。该应用程序连接到另一台服务器,从该服务器获取一些数据,对其进行转换,然后将其发送回在其他地方运行的客户端应用程序。所有这些都在TCP之上的boost::asio之上。IO相当重。每天在运行几个小时左右后,我们都会看到我们的服务器断开客户端连接。当客户端尝试重新连接时,他们的连接一旦建立就会再次断开。boost::asio的错误报告是“Connectionresetbypeer”。这似乎无限期地继续下去。在此期间,我可以通过ssh进入机器,并且从我们的应用程序到服务器进程的连接仍然健康。负载适中。重新启动我们的应用

java - Android tcp 客户端连接然后断开与 java 服务器的连接

我在我的电脑上做java服务器,并让我的android设备连接到它。我可以连接它,但它一连接就断开连接。我确信我需要在android端做一些事情,但我对此有点迷茫。我有互联网许可,所以没问题。同时忽略我将图像从我的android发送到pc的注释代码。也忽略savebitmap并截取屏幕截图,我认为如果不调用它不会影响连接。Java服务器:importjavax.imageio.ImageIO;importjavax.imageio.ImageReadParam;importjavax.imageio.ImageReader;importjavax.imageio.stream.Imag

Java TCP 服务器在客户端断开连接之前不接收数据包

我有一个用Java编写的TCP服务器和一个用Python编写的客户端。python客户端只发送10个数据包,每次发送之间等待2秒。但是,java服务器似乎在python脚本终止之前无法识别数据包,在该脚本中它最终接收到所有消息,就好像它们是同时进入的一样。我已经用wireshark观看并验证了客户端是否正确发送了所有数据包。ServerSocketserverSocket=newServerSocket(6789);SocketclientSocket=null;System.out.println("Waitingforconnection.....");try{clientSock

Java 多线程 TCP 套接字 - 从客户端接收消息,直到它们断开连接

我有以下代码可以从我的Java服务器接受多个客户端。privateclassSocketServerThreadextendsThread{intcount=0;Stringerror_message=null;@Overridepublicvoidrun(){try{serverSocket=newServerSocket(theSocketServerPORT);while(true){finalSocketsocket=serverSocket.accept();count++;runOnUiThread(newRunnable(){@Overridepublicvoidrun(

c# - 断开连接后 TCP 客户端不重新连接

我做了一个服务器和一个客户端。如果我关闭服务器,客户端应该重新尝试连接到服务器。我已经做到了,当waitForCommands期间的try/catch失败时,它会在新线程中重新启动attemptConnection方法。我这里的问题是它根本不会重新连接。作为测试,我打开我的TCP服务器和TCP客户端。客户端像往常一样连接到服务器。然后,我关闭TCP服务器,客户端迅速吐出此错误:“System.Net.Sockets.SocketException”,并且从不连接。classProgram{publicstaticTcpClientclient=newTcpClient();public