delphi 動態創建TClientSocket后,
ClientSocket:= TClientSocket.Create(nil);
ClientSocket.OnRead := MySocketRead;
procedure MySocketRead(Sender: TObject; Socket: TCustomWinSocket);
begin
這里為什么收不到資訊啊??
end;
連接也是正常的,server端也發送資料了,客戶端這就是什么資訊也沒收到。
怎么能將我定義的事件與Clientsocket系結在一起呢???
uj5u.com熱心網友回復:
unit MainFormUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;
type
TMainForm = class(TForm)
mmoLog: TMemo;
btnRequest: TButton;
edtUrl: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure btnRequestClick(Sender: TObject);
private
FClient: TClientSocket;
procedure OnRead(Sender: TObject; Socket: TCustomWinSocket);
procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
begin
FClient := TClientSocket.Create(nil);
FClient.OnRead := OnRead;
FClient.OnConnect := OnConnect;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FClient.Free;
end;
procedure TMainForm.OnRead(Sender: TObject; Socket: TCustomWinSocket);
begin
mmoLog.Lines.Add(Socket.ReceiveText);
end;
procedure TMainForm.btnRequestClick(Sender: TObject);
begin
FClient.Host := edtUrl.Text;
FClient.Port := 80;
FClient.Open;
end;
procedure TMainForm.OnConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText('GET / HTTP/1.1'#13#10'Host: ' + edtUrl.Text + #13#10#13#10);
end;
end.
寫了個例子,自己看下吧。
uj5u.com熱心網友回復:
埠呢?連接沒,只有兩行代碼能干什么啊uj5u.com熱心網友回復:
不明白代碼,期待詳解。。。uj5u.com熱心網友回復:
To pathletboy,
uj5u.com熱心網友回復:
這個是EXE執行的。。如果動態執行。你就要構建 TObject 。不然在DLL中是不會回應的。也就是不會執行
uj5u.com熱心網友回復:
好好看一下書,你這只是建立了個東西 啥 都沒給乍接收轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74576.html
標籤:網絡通信/分布式開發
上一篇:delphi下多串口開發,程式運行時,除了串口1能被初始化,其他串口未被初始化
下一篇:呼叫外部dll 的問題。。
