主动断开socket链接_有懂ServerSocket的高手来看看,像这种,如何在服务端主动断开其中某个连接或单独给某个连接发消息呢...

Delphi(Pascal) codeunit Unt_socketserver;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, xmldom, XMLIntf, cxLookAndFeelPainters, StdCtrls, cxButtons,

Buttons, cxControls, cxContainer, cxEdit, cxTextEdit, Sockets, msxmldom,

XMLDoc, ScktComp;

type

TFrm_socketserver = class(TForm)

XMLDocument1: TXMLDocument;

Label1: TLabel;

SpeedButton1: TSpeedButton;

cxButton1: TcxButton;

cxButton2: TcxButton;

OpenDialog1: TOpenDialog;

cxTextEdit1: TcxTextEdit;

ServerSocket: TServerSocket;

procedure ServerSocketGetThread(Sender: TObject;

ClientSocket: TServerClientWinSocket;

var SocketThread: TServerClientThread);

private

{ Private declarations }

public

{ Public declarations }

end;

type

TClientThread = Class(TServerClientThread)

private

public

procedure ClientExecute; override;

end;

var

Frm_socketserver: TFrm_socketserver;

implementation

var host,port,sid,username,password:string;

{$R *.dfm}

procedure TClientThread.ClientExecute;

var

ProvideBuffer: Array[0..120] Of Char;

SocketStream : TWinSocketStream;

Byteswrite : Integer;

s:string;

begin

while not Terminated and ClientSocket.Connected do

Begin

try

SocketStream:= TWinSocketStream.Create(ClientSocket, 100);

try

s:=trim(host+port+sid+username+password);

strpcopy(ProvideBuffer,s);

Byteswrite:=SizeOf(ProvideBuffer);

SocketStream.Write(ProvideBuffer,Byteswrite);

finally

SocketStream.Free;

ClientSocket.Close;

end;

except

end;

end;

end;

procedure TFrm_socketserver.ServerSocketGetThread(Sender: TObject;

ClientSocket: TServerClientWinSocket;

var SocketThread: TServerClientThread);

begin

SocketThread := TClientThread.Create(False, ClientSocket);

end;

end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值