标签: disconnect

断开TCPClient并在另一端看到它

我试图断开客户端与服务器的连接,但服务器仍然将其视为已连接.我无法找到解决方案,关闭,断开和关闭所有不工作.

我与客户端断开连接并检查服务器的一些代码:

客户:

  private void btnDisconnect_Click(object sender, EventArgs e)
    {
        connTemp.Client.Shutdown(SocketShutdown.Both);
        connTemp.Client.Disconnect(false);
        connTemp.GetStream().Close();
        connTemp.Close();
    }
Run Code Online (Sandbox Code Playgroud)

服务器:

    while (client != null && client.Connected)
            {
                NetworkStream stream = client.GetStream();
                data = null;

                try
                {
                    if (stream.DataAvailable)
                    {
                        data = ReadStringFromClient(client, stream);
                        WriteToConsole("Received Command: " + data);
                    }
                } // So on and so on...
Run Code Online (Sandbox Code Playgroud)

代码中还有更多的写入和读取.

希望你们都能提供帮助.

更新:我甚至尝试通过ref传递TCP客户端,假设存在范围问题和client.Connected即使在读取后仍然为真.出了什么问题?

第二次更新!!:

这是解决方案.先查看并确定是否已连接.

  if (client.Client.Poll(0, SelectMode.SelectRead))
                    {
                        byte[] checkConn = new byte[1];
                        if (client.Client.Receive(checkConn, SocketFlags.Peek) == 0)
                        {
                            throw new IOException();
                        }
                    }
Run Code Online (Sandbox Code Playgroud)

.net c# sockets tcpclient disconnect

2
推荐指数
1
解决办法
1万
查看次数

断开连接后Socket.io套接字数据可用性

当使用socket.io(node.js)触发套接字断开连接事件时,套接字的数据仍可用多长时间?

如果我有一个异步返回数据的商店(如redis),那么仍然可以安全地执行查找吗?

我需要获取套接字的所有数据,以便在断开连接时保存套接字的状态.

非常感谢.

disconnect node.js socket.io

2
推荐指数
1
解决办法
486
查看次数

为什么我不能用DBD :: DB2断开我的数据库句柄?

我的perl脚本很慢但有效.我正在考虑抛弃它并构建一个具有适当绑定等的真正的DB2应用程序; 然而,与此同时,我希望这可以作为占位符.

我查看了这个文档并提到:

$dbh->disconnect();
Run Code Online (Sandbox Code Playgroud)

但是我无法使用它,因为它会抛出此错误.

无法在./ProgramTree.pl第119行通过包"dbh"(可能加载"dbh"?)找到对象方法"disconnect".

我知道我的临时应用程序正在泄漏并且正在增长,因为它以递归方式打开数据库句柄.我错过了什么基本的东西?

perl dbi disconnect

1
推荐指数
1
解决办法
723
查看次数

多路连接 - 以编程方式断开对等端

我正在将一个应用程序从GameKit转换为Multipeer Connectivity,似乎找不到允许浏览器设备从会话中断开另一个对等体的方法.使用GKSession,我们可以使用disconnectPeerFromAllPeers:断开单个对等体与会话的连接,但我在MPC中找不到类似的东西.当然,MPC确实有disconnect:方法,但这会使本地对等体退出会话......不是我想要的.

我发现最接近的是:cancelConnectPeer:但这似乎更侧重于取消连接尝试...而不是发布连接.

如果有可能与MPC一起使用,任何人都知道如何做到这一点?

谢谢!

disconnect ios7 multipeer-connectivity

1
推荐指数
1
解决办法
2109
查看次数

如何检测用户何时离开网站?

我正在读这个问题:试图检测浏览器关闭事件

但它不够全面,或者至少我不确定它,我需要检测用户何时离开网站,这可能是:

  • 网络死了
  • PC关机(例如断电)
  • 用户关闭浏览器
  • 用户关闭运行网站的浏览器选项卡

我相信还有更多的案例.

这可能需要由服务器管理,而不是在极端情况下不会被触发的某些javascript事件.

在这种情况下可以使用什么想法?

javascript php disconnect

1
推荐指数
1
解决办法
1500
查看次数

如何断开所有数据库连接字符串

我有一个 Perl 脚本,它使用不同的连接驱动程序连接到许多数据库。

如果有任何活动会话,有什么办法可以最终编写一个断开连接函数来断开连接吗?

例子 :

connection 1: $dbh->oracle;
connection 2: $dbh->sql
Run Code Online (Sandbox Code Playgroud)

我可以为两个数据库设置一个通用的断开连接字符串吗?

perl database-connection dbi disconnect

1
推荐指数
1
解决办法
1292
查看次数

如何拒绝和关闭 django-channels 2 中的连接?

自从我开始使用 django-channels 已经 1 个月了,现在我觉得我没有正确断开 websockets。当我断开连接时,如果没有人在那里,我想完全摧毁该组,并且它应该没有存在的迹象。当我拒绝连接时,我提出 channels.exceptions.DenyConnection 或发送 {'accepted': 'False'} 我只是想知道这是否是我提到的事情的正确方式。

python django disconnect websocket django-channels

1
推荐指数
2
解决办法
2672
查看次数

Erlang catch断开客户端

我有用erlang和命令处理程序编写的tcp服务器.如果客户端连接到我的服务器,然后关闭如何捕获网络断开连接?

sockets erlang client disconnect

0
推荐指数
1
解决办法
741
查看次数

停止idhttp.get时的析构函数(indy,delphi)

我的应用程序可以从memo1中的每个URL下载一张图片.它使用idhttp.get并有一个跳过按钮.跳过之后下载下一张图片.

Q1:你有代码放入析构函数,"终止"和"等待"的代码是什么? 我在另一个网站上发现了这个:

destructor thread.destroy;
begin
try
Terminate;
If HTTP.Connected then HTTP.Disconnect;
finally
WaitFor;
FreeAndNil(HTTP);
end;
inherited;
end;
Run Code Online (Sandbox Code Playgroud)

Q2:如何调用析构函数并使其工作?

问题3:您是否有提示(特别是安全问题)和其他代码行?

我的申请代码:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
       thread = class
  public
      Constructor Create; overload;
      Destructor  Destroy; override;
  end;

  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    startbutton: TButton;
    skipbutton: TButton;

    procedure startbuttonClick(Sender: TObject);
    procedure skipbuttonClick(Sender: TObject);
    procedure IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: …
Run Code Online (Sandbox Code Playgroud)

delphi destructor terminate disconnect idhttp

0
推荐指数
1
解决办法
1736
查看次数

如何使用Node.js检测客户端Internet断开连接

我正在使用node.js作为游戏服务器.

这是我的服务器脚本

 var net = require('net');
 var http = require('http');

var host =  '192.168.1.77';
var portNum = 12345;//


  function policy() 
{
    var xml = '<?xml version="1.0"?>\n<!DOCTYPE cross-domain-policy SYSTEM' +
            '"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">\n<cross-domain-policy>\n';

    xml += '<allow-access-from domain="*" to-ports="*"/>\n';
    xml += '</cross-domain-policy>\n\0' + "\0";
    return xml;
}



var server = net.createServer(function (stream) 
{
stream.setEncoding('utf8');

stream.on('data', function (data) { 

    if (data == '<policy-file-request/>\0') 
    {
        var x = policy();
        stream.write(x);
        var server_date = new Date();
        var serv_sec = server_date.getSeconds();
        return;
    }

    var comm = JSON.parse(data); 
    if …
Run Code Online (Sandbox Code Playgroud)

disconnect node.js node.js-stream

0
推荐指数
1
解决办法
3844
查看次数