资源描述:
《socket通信应用实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、unitMainUnit;interfaceusesWindows,Messages,SysUtils,Classes,Controls,Forms,Dialogs,DBGrids,ScktComp,ComCtrls,StdCtrls,ExtCtrls,ComFunUnit,IBDatabase,DB,IBCustomDataSet,IBQuery,IniFiles,Grids;constCMax=50;//客户端最大连接数CMsgStoreMax=30;typeclient_record=recordCHandl
2、e:Integer;//客户端套接字句柄CSocket:TCustomWinSocket;//客户端套接字CName:string;//客户端计算机名称CAddress:string;//客户端计算机IP地址CUsed:Boolean;//客户端联机标志end;MsgBuf=recordMsgSource:array[0..32]ofChar;MsgDest:array[0..32]ofChar;MsgType:Integer;MsgData:array[0..2048]ofChar;end;PMsg=^MsgBu
3、f;POINTTOINT=^Integer;TMessagIPS=recordIPA:string;IPB:string;IPC:string;end;TNodeInfo=recordLoadID:string;NodeID:string;end;TUsedIPInfo=(uipIPA,uipIPB,uipIPC);TSendState=(ssNotJob,ssSending,ssFinished);TMsgSocket=class(TClientSocket)privateFIPS:TMessagIPS;FSen
4、dResult:Boolean;//发送成功标志FSendState:TSendState;//工作状态FMsg:MsgBuf;//待发送的消息数据FUIPFlg:TUsedIPInfo;protectedprocedureDoActivate(Value:Boolean);override;procedureError(Socket:TCustomWinSocket;ErrorEvent:TErrorEvent;varErrorCode:Integer);override;procedureEvent(Socke
5、t:TCustomWinSocket;SocketEvent:TSocketEvent);override;publicconstructorCreate(AOwner:TComponent);override;procedureTSendMessage(IPS:TMessagIPS;Msg:MsgBuf);end;TMainForm=class(TForm)Panel1:TPanel;Label3:TLabel;btnInitLinkA:TButton;btnstopA:TButton;csckSend:TCli
6、entSocket;tmrSend:TTimer;tmrSaveYC:TTimer;tmrUnPacked:TTimer;pgcFTU:TPageControl;tsFTU:TTabSheet;tsYX:TTabSheet;tsYC:TTabSheet;ibdtbsFTU:TIBDatabase;ibqryFTU:TIBQuery;dbgrd1:TDBGrid;ibqryYX:TIBQuery;ibqryYC:TIBQuery;dbgrd2:TDBGrid;dsMsgSend:TDataSource;dsProRu
7、n:TDataSource;dbgrd3:TDBGrid;ibtrnsctn1:TIBTransaction;ibqryYXID:TIntegerField;ibqryYXFTUADDR:TIntegerField;ibqryYXYXADDR:TIntegerField;ibqryYXYXNAME:TIBStringField;ibqryYXLASTSTATE:TIntegerField;ibqryYXLASTTIME:TTimeField;ibqryYCID:TIntegerField;ibqryYCFTUADD
8、R:TIntegerField;ibqryYCYCADDR:TIntegerField;ibqryYCYCNAME:TIBStringField;ibqryYCYCVALUE:TFloatField;ibqryYCYCPARA:TFloatField;ibqryYCDATATIME:TTimeField;ibqryYCSAVETIME:TTimeField;