如何监听socket端口 如题。最好有代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ClientSocket1.Active := False; ServerSocket1.Active := True; Statusbar1.Panels[0].Text := 'Listening...'; unit Unit_Test;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ScktComp, ComCtrls, ExtCtrls;type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; StatusBar1: TStatusBar; Panel1: TPanel; Memo1: TMemo; Panel2: TPanel; Memo2: TMemo; Panel3: TPanel; BitBtn1: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure BitBtn4Click(Sender: TObject); private { Private declarations } public { Public declarations } protected IsServer: Boolean; end;var Form1: TForm1; Server: String;implementation{$R *.dfm}procedure TForm1.BitBtn2Click(Sender: TObject);begin ClientSocket1.Active := False; ServerSocket1.Active := False; close;end;procedure TForm1.BitBtn1Click(Sender: TObject);begin ClientSocket1.Active := False; ServerSocket1.Active := True; Statusbar1.Panels[0].Text := 'Listening...';end;procedure TForm1.BitBtn3Click(Sender: TObject);begin if ClientSocket1.Active then begin ClientSocket1.Active := False; end; if InputQuery('计算机连接到', '要连接的计算机的IP地址或者计算机名:', Server) then if Length(Server) > 0 then begin ClientSocket1.Host := Server; ClientSocket1.Active := True; end;end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if Key = VK_Return then begin if IsServer then begin ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines.Text) end else begin ClientSocket1.Socket.SendText(Memo1.Lines.Text); end; end;end;procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);begin IsServer := True; Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress;end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);begin Memo2.Lines.Add(Socket.ReceiveText);end;procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);begin Memo2.Lines.Add(Socket.ReceiveText);end;procedure TForm1.BitBtn4Click(Sender: TObject);begin ClientSocket1.Active := False; ServerSocket1.Active := False;end;end. 在WIN2000下可以使用原始套接字 楼主,借个地方:谁可以给个用UDP发送广播$02或$03或$04到网内电脑的1434端口,并监听回传的信息,来判断些台电脑是否是SQL2000的服务器。代码发送到 : [email protected]注明CSDN的名称,高分相送。 QQ 任务栏闪烁 怎么做的??如何取消?? 如何用 timer 实现倒计时? 高分请教 怎么实现类似金山词霸的自动取词功能? 如何写一个WaitForData的函数? 如何建立一棵树? 关于用户登陆的问题!!!! 很菜的打印问题:怎么使title不在第二页及以后打出来? DBGrid控件的小问题 价值30分 UltraEdit好象不支持Delphi语法,有没有补丁之类的?如果没有,有其他好的编辑器吗? 不要砸我!!!我知道这个问题很菜,请高手点拨一下小弟,不甚感激,谢谢!!! 这个问题怎么解决? 怎莫在一个panel中显示一个form?
ServerSocket1.Active := True;
Statusbar1.Panels[0].Text := 'Listening...';
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ScktComp, ComCtrls, ExtCtrls;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
StatusBar1: TStatusBar;
Panel1: TPanel;
Memo1: TMemo;
Panel2: TPanel;
Memo2: TMemo;
Panel3: TPanel;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
protected
IsServer: Boolean;
end;var
Form1: TForm1;
Server: String;
implementation{$R *.dfm}procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
close;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := True;
Statusbar1.Panels[0].Text := 'Listening...';
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if ClientSocket1.Active then
begin
ClientSocket1.Active := False;
end;
if InputQuery('计算机连接到', '要连接的计算机的IP地址或者计算机名:', Server) then
if Length(Server) > 0 then
begin
ClientSocket1.Host := Server;
ClientSocket1.Active := True;
end;
end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
begin
if IsServer then
begin
ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines.Text)
end
else
begin
ClientSocket1.Socket.SendText(Memo1.Lines.Text);
end;
end;
end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
IsServer := True;
Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress;
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
end;end.
谁可以给个用UDP发送广播$02或$03或$04到网内电脑的1434端口,并监听回传的信息,来判断些台电脑是否是SQL2000的服务器。
代码发送到 : [email protected]
注明CSDN的名称,高分相送。