发送代码:
IdTCPClient1.Host := '127.0.0.1';
IdTCPClient1.Port := 80;
IdTCPClient1.Connect;
IdTCPClient1.WriteBuffer(ms,ms.Size, true);
发送数据之后,是用IdTCPClient1.ReadBuffer(mp.memory^,mp.Size);接收数据吗?可是用这段代码后,就死机了,程序没响应,怎么解决呢?
IdTCPClient1.Host := '127.0.0.1';
IdTCPClient1.Port := 80;
IdTCPClient1.Connect;
IdTCPClient1.WriteBuffer(ms,ms.Size, true);
发送数据之后,是用IdTCPClient1.ReadBuffer(mp.memory^,mp.Size);接收数据吗?可是用这段代码后,就死机了,程序没响应,怎么解决呢?
解决方案 »
- 如何将1.xls文件上传到指定服务器上???
- 组件事件问题
- 关于时间计算!~~~`
- 这种特殊的文件夹是如何建立的?
- 很着急,这个问题大家有没有遇到过。
- treeview 问题
- Chart控件背景动态添加?
- 用ADO能不能用SQL语句将Access2000库中的表复制到SQL2000server库中?
- 急!急!保存的*.dfm文件中的汉字都变成16进制表示,在另一台机器中无法打开!为什么会这样呢?
- 请问如何使一个edit在输入了3个字符后,能自动把焦点移到下一个Edit?
- DBGRID有没有办法在不连接数据库的情况下,对其进行记录的添加。
- 100分求一張<<DELPHI高手突破>>光盤,先謝過!
with AThread.Connection do
begin
ReadBuffer(Buffer,Buffersize);
end;
当然现实中并是这么简单,这里给你举个例子吧。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdTCPServer, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, StdCtrls;type
TForm1 = class(TForm)
IdTCPClient1: TIdTCPClient;
IdTCPServer1: TIdTCPServer;
SendBtn: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure IdTCPServer1Execute(AThread: TIdPeerThread);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SendBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
with IdTCPServer1 do
begin
Bindings.Clear;
Bindings.Add.Port:=1981;
Active:=True;
end;
with IdTCPClient1 do
begin
Host:='127.0.0.1';
Port:=1981;
Connect;
end;
end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
DataSize:Integer;
Buffer:String;
begin
with AThread.Connection do
begin
DataSize:=ReadInteger;
SetLength(Buffer,DataSize);
ReadBuffer(Buffer[1],DataSize);
Memo1.Lines.Add(Buffer);
end;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTCPClient1.Disconnect;
end;procedure TForm1.SendBtnClick(Sender: TObject);
var
Buffer:String;
begin
Buffer:='Test send buffer...';
with IdTCPClient1 do
begin
WriteInteger(Length(Buffer));
WriteBuffer(Buffer[1],Length(Buffer),True);
end;
end;end.
j建立个线程,读数据~ 看indy 提供的Demo~-----------------------------------------------------------------------------------------------------------------------------------------
CSDN小猪手:方便查看,快速回复~~速度++~~~
下载:
http://www.vickyjam.com/blog/lbs/article.asp?id=165
IdTCPClient1.Host := '127.0.0.1';
IdTCPClient1.Port := 80;
IdTCPClient1.Connect;
IdTCPClient1.WriteBuffer(ms,ms.Size, true);
IdTCPClient1.ReadBuffer(mp.memory^,mp.Size);//在这里接收,死机,没响应。
要是别的即使对CLIENT开放了端口,服务端又怎么知道如何处理CLIENT传来的信息呢
除非像楼上讲的你要做代理服务器啊