关于TClientSocket与TServerSocket的简单问题 我用一对TClientSocket与TServerSocket实现从a程序到b程序的传输,完全没问题。但用另一对TClientSocket与TServerSocket实现b到a的传输时onClientRead却不能获取任何信息,但onClientConnect却能捕捉到连接。请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 阻塞方式下onClientRead是不起作用的. 我的servertype = stNonBlocking。我换过端口,但还是没变化,我觉得如果端口不能用onClientConnect应该不能捕捉到连接! 是不是tcpclient和tcpserver呢?? 那两个组件好象要安装,以下是别人说的:Menu: Component/Install Packages/Add...,选择 Delphi Bin 文件夹下的 dclsockets70.bpl 文件,在 Internet 面板下就有了。我的问题还没解决,英雄们救命啊`~ 我没有你那个问题,不过我传过来的信息,出现乱吗upup 你指的a 和 b 是TClientSocket与TServerSocket还是主机?不同的程序? 如果有两个以上的client联接到server上的时候,都能正常联接成功,但是在server发数据的时候却只能有一个收得到。 TO: seeder(seeder) (这是通信的线程号不对,所以只能和第一个通信. 本人用 Delphi5 试验如下,可以互相通信。a 程序代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp;type TForm1 = class(TForm) ServerSocket1: TServerSocket; ClientSocket1: TClientSocket; Button1: TButton; Memo1: TMemo; Button2: TButton; procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin ServerSocket1.Active := True;end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);begin Memo1.Lines.Add(Socket.ReceiveText);end;procedure TForm1.Button1Click(Sender: TObject);begin ClientSocket1.Active := True;end;procedure TForm1.Button2Click(Sender: TObject);begin ClientSocket1.Socket.SendText('From aaaa');end;procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);begin memo1.Lines.Add('connected');end;end.object Form1: TForm1 Left = 192 Top = 114 Width = 313 Height = 249 Caption = 'b' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 32 Top = 168 Width = 75 Height = 25 Caption = 'Link' TabOrder = 0 OnClick = Button1Click end object Memo1: TMemo Left = 24 Top = 24 Width = 249 Height = 121 Lines.Strings = ( 'Memo1') TabOrder = 1 end object Button2: TButton Left = 192 Top = 168 Width = 75 Height = 25 Caption = 'Send' TabOrder = 2 OnClick = Button2Click end object ServerSocket1: TServerSocket Active = False Port = 8888 ServerType = stNonBlocking OnClientRead = ServerSocket1ClientRead Left = 104 Top = 56 end object ClientSocket1: TClientSocket Active = False ClientType = ctNonBlocking Host = 'ctixp' Port = 9999 OnConnect = ClientSocket1Connect Left = 168 Top = 56 endendb 程序代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp;type TForm1 = class(TForm) ServerSocket1: TServerSocket; ClientSocket1: TClientSocket; Button1: TButton; Memo1: TMemo; Button2: TButton; procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin ServerSocket1.Active := True;end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);begin Memo1.Lines.Add(Socket.ReceiveText);end;procedure TForm1.Button1Click(Sender: TObject);begin ClientSocket1.Active := True;end;procedure TForm1.Button2Click(Sender: TObject);begin ClientSocket1.Socket.SendText('From aaaa');end;procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);begin memo1.Lines.Add('connected');end;end.object Form1: TForm1 Left = 192 Top = 114 Width = 362 Height = 259 Caption = 'a' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 80 Top = 168 Width = 75 Height = 25 Caption = 'Link' TabOrder = 0 OnClick = Button1Click end object Memo1: TMemo Left = 56 Top = 24 Width = 249 Height = 121 Lines.Strings = ( 'Memo1') TabOrder = 1 end object Button2: TButton Left = 208 Top = 168 Width = 75 Height = 25 Caption = 'Send' TabOrder = 2 OnClick = Button2Click end object ServerSocket1: TServerSocket Active = False Port = 9999 ServerType = stNonBlocking OnClientRead = ServerSocket1ClientRead Left = 104 Top = 56 end object ClientSocket1: TClientSocket Active = False ClientType = ctNonBlocking Host = 'ctixp' Port = 8888 OnConnect = ClientSocket1Connect Left = 168 Top = 56 endend Borland C++ DLL Method 2 求:界面美化熟手 为什么我的delphi7里找不到clientsocket组件? class TfcStatusBar not found 这种错误怎么样解决 Delphi 6.0编写一个小的计算器 高手请进(会C0)硬件仿问问题。 【200分】网页取图片,不难的问题 菜鸟的简单问题,大家不要笑我。 它说我这句SQL有问题。。。 求救。。。菜鸟的SOS 谁来建一个开发外挂软件的组? 招人合作开发游戏外挂.
up
up
还是主机?不同的程序?
a 程序代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp;type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
ClientSocket1: TClientSocket;
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active := True;
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Active := True;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText('From aaaa');
end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Add('connected');
end;end.object Form1: TForm1
Left = 192
Top = 114
Width = 313
Height = 249
Caption = 'b'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 32
Top = 168
Width = 75
Height = 25
Caption = 'Link'
TabOrder = 0
OnClick = Button1Click
end
object Memo1: TMemo
Left = 24
Top = 24
Width = 249
Height = 121
Lines.Strings = (
'Memo1')
TabOrder = 1
end
object Button2: TButton
Left = 192
Top = 168
Width = 75
Height = 25
Caption = 'Send'
TabOrder = 2
OnClick = Button2Click
end
object ServerSocket1: TServerSocket
Active = False
Port = 8888
ServerType = stNonBlocking
OnClientRead = ServerSocket1ClientRead
Left = 104
Top = 56
end
object ClientSocket1: TClientSocket
Active = False
ClientType = ctNonBlocking
Host = 'ctixp'
Port = 9999
OnConnect = ClientSocket1Connect
Left = 168
Top = 56
end
endb 程序代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp;type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
ClientSocket1: TClientSocket;
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active := True;
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Active := True;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText('From aaaa');
end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Add('connected');
end;end.
object Form1: TForm1
Left = 192
Top = 114
Width = 362
Height = 259
Caption = 'a'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 80
Top = 168
Width = 75
Height = 25
Caption = 'Link'
TabOrder = 0
OnClick = Button1Click
end
object Memo1: TMemo
Left = 56
Top = 24
Width = 249
Height = 121
Lines.Strings = (
'Memo1')
TabOrder = 1
end
object Button2: TButton
Left = 208
Top = 168
Width = 75
Height = 25
Caption = 'Send'
TabOrder = 2
OnClick = Button2Click
end
object ServerSocket1: TServerSocket
Active = False
Port = 9999
ServerType = stNonBlocking
OnClientRead = ServerSocket1ClientRead
Left = 104
Top = 56
end
object ClientSocket1: TClientSocket
Active = False
ClientType = ctNonBlocking
Host = 'ctixp'
Port = 8888
OnConnect = ClientSocket1Connect
Left = 168
Top = 56
end
end