我写了个socket的程序,使用socket控件
PT:=Thread1.Create(false, FileIp, FPo, IntFiletimeout, IntFiletimestep);
再客户端创建一个发送线程
线程代码如下:
unit UnitSendMsgThread;interface
uses
Classes, Graphics, Windows,Sockets,ScktComp;
Type
Thread1=class(TThread) {Thread1?????????烋
private
suspend: Boolean; {Create?????????????????菽?}
HostName: string; {???P}
Port: Integer; {?靹?????????}
TimeStep: Integer; {?????????????????莨荳
TimeOut: Integer; {???????????艟 //testSocket: TClientSocket; protected
procedure Execute; override; {?????犒?Execute????} public
constructor Create (CreateSuspended: Boolean; hos: string;
por: Integer; timeo: Integer; time: Integer); end;
implementation
uses
UnitKSFClient; {????nitKSFclient???袵??耨??????袒???????}constructor Thread1.Create(CreateSuspended: Boolean; hos: string;
por: Integer; timeo: Integer; time: Integer);
begin
suspend:=CreateSuspended ;
HostName:= hos;
Port:= por;
TimeOut:= timeo;
TimeStep:= time; //testSocket:=TClientSocket.create(nil);
//testSocket.Address:=hostName;
//testSocket.Port:=port; inherited Create (suspend); {????????????????}
end;procedure Thread1.Execute ; {??????????????}
var
SysTime: TsystemTime; {API????}
intTime1: Integer; {???????????????????艟
intTime2: Integer; {???睫????????艟
intTime: Integer; {???????????茣蕓
Timestep1: Integer; {?????????????艟
//strTime:string; {?????葫????逸?????}begin repeat intTime1 :=SysTime.wMilliseconds; {?????????????????莠???
//testSocket.Active:=True;
//testSocket.Socket.SendText('hello');
//testSocket.Close;
FormKSFClient.ClientSocket1.Address :=HostName; {?靹??ⅹD}
FormKSFClient.ClientSocket1.Port :=Port; {?靹?????}
FormKSFClient.ClientSocket1.Active := True;
{??????????????﨧???TCPSERVER ??Accepe????}
//if FormKSFClient.ClientSocket1.cConnected=true then
//FormKSFClient.TimerConnectout.Enabled:=false; {?郢鋐???????????????????????????????????} //strTime :=IntToStr(SysTime.wMilliseconds) ; {?????????萓?????????
FormKSFClient.ClientSocket1.Socket.SendText('client_??????????:success!'); {????????}
//FormKSFClient.ClientSocket1.Socket.Close;
intTime2 :=SysTime.wMilliseconds; {?????睫??????莠???
FormKSFClient.ClientSocket1.Close; {????????} if intTime2 > intTime1 then
begin
intTime := intTime2 - intTime1; {???????????????艟
end
else
begin
intTime :=1000 -intTime1 + intTime2; {???????????????艟
end;
Timestep1 := Timestep - intTime;
{???????????????????????萓???????????????????}
sleep(TimeStep1); {????????Timestep???艟 until Terminated; {?????睫??}
end;
end.
PT:=Thread1.Create(false, FileIp, FPo, IntFiletimeout, IntFiletimestep);
再客户端创建一个发送线程
线程代码如下:
unit UnitSendMsgThread;interface
uses
Classes, Graphics, Windows,Sockets,ScktComp;
Type
Thread1=class(TThread) {Thread1?????????烋
private
suspend: Boolean; {Create?????????????????菽?}
HostName: string; {???P}
Port: Integer; {?靹?????????}
TimeStep: Integer; {?????????????????莨荳
TimeOut: Integer; {???????????艟 //testSocket: TClientSocket; protected
procedure Execute; override; {?????犒?Execute????} public
constructor Create (CreateSuspended: Boolean; hos: string;
por: Integer; timeo: Integer; time: Integer); end;
implementation
uses
UnitKSFClient; {????nitKSFclient???袵??耨??????袒???????}constructor Thread1.Create(CreateSuspended: Boolean; hos: string;
por: Integer; timeo: Integer; time: Integer);
begin
suspend:=CreateSuspended ;
HostName:= hos;
Port:= por;
TimeOut:= timeo;
TimeStep:= time; //testSocket:=TClientSocket.create(nil);
//testSocket.Address:=hostName;
//testSocket.Port:=port; inherited Create (suspend); {????????????????}
end;procedure Thread1.Execute ; {??????????????}
var
SysTime: TsystemTime; {API????}
intTime1: Integer; {???????????????????艟
intTime2: Integer; {???睫????????艟
intTime: Integer; {???????????茣蕓
Timestep1: Integer; {?????????????艟
//strTime:string; {?????葫????逸?????}begin repeat intTime1 :=SysTime.wMilliseconds; {?????????????????莠???
//testSocket.Active:=True;
//testSocket.Socket.SendText('hello');
//testSocket.Close;
FormKSFClient.ClientSocket1.Address :=HostName; {?靹??ⅹD}
FormKSFClient.ClientSocket1.Port :=Port; {?靹?????}
FormKSFClient.ClientSocket1.Active := True;
{??????????????﨧???TCPSERVER ??Accepe????}
//if FormKSFClient.ClientSocket1.cConnected=true then
//FormKSFClient.TimerConnectout.Enabled:=false; {?郢鋐???????????????????????????????????} //strTime :=IntToStr(SysTime.wMilliseconds) ; {?????????萓?????????
FormKSFClient.ClientSocket1.Socket.SendText('client_??????????:success!'); {????????}
//FormKSFClient.ClientSocket1.Socket.Close;
intTime2 :=SysTime.wMilliseconds; {?????睫??????莠???
FormKSFClient.ClientSocket1.Close; {????????} if intTime2 > intTime1 then
begin
intTime := intTime2 - intTime1; {???????????????艟
end
else
begin
intTime :=1000 -intTime1 + intTime2; {???????????????艟
end;
Timestep1 := Timestep - intTime;
{???????????????????????萓???????????????????}
sleep(TimeStep1); {????????Timestep???艟 until Terminated; {?????睫??}
end;
end.
解决方案 »
- 怎么调整bmp图片的尺寸?
- 我现在做了个窗体,上面放了个TstringGrid控件,我要求熟标不能移入TstringGrid这个控件,但又要控件TstringGrid的滚动条,用代码如何控
- 请问:在delphi怎样操作powerbuilder
- SQl语句
- 请问idhttp下载如何中断!!谢谢
- RichEdit的简单问题,请高手近来看看帮帮忙!急急急...在线等待!!
- 吐血大散分:我的Excel程序!(100的散)
- 有谁用过CBX RIA框架?
- 如何用delphi7来获取firefox的url
- 关于“保存”和“另存为“,求助!
- Tdbgrid中用户拖动鼠标在其他行,但是程序是在更新第一行数据.
- 如何在设计期间让form2继承form1,继承后form2在设计是就和form1一样了?
procedure MyProcedure;
begin
FormKSFClient.ClientSocket1.Address :=HostName;
......
end;调用时
Synchronize(MyProcedure);