unit U_Link; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, IniFiles, Dialogs, ScktComp, ExtCtrls; type TCommBlock = record workFlag: integer; //0:开始接受字符串, linkString: string[255]; // buf:array [0..Buffersize] of char; end; TfrmLink = class(TForm) CSocket: TClientSocket; AADs: TPanel; procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure CSocketConnect(Sender: TObject; Socket: TCustomWinSocket); procedure FormDestroy(Sender: TObject); procedure CSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure FormCreate(Sender: TObject); private { Private declarations } public fADOConnString: string; LinkFlag: string; function LinkTxServer(): Boolean; { Public declarations } end; var frmLink: TfrmLink; implementation //uses U_Main; {$R *.dfm} function TfrmLink.LinkTxServer(): Boolean; var CommBlock: TCommBlock; begin result := false; try CommBlock.workFlag := strtointdef(LinkFlag, -1); CommBlock.linkString := ''; CSocket.Socket.SendBuf(CommBlock, SizeOf(CommBlock)); Result := true; except Application.MessageBox('连接通讯服务器失败!', '错误信息', MB_ICONERROR); end; end; procedure TfrmLink.CSocketRead(Sender: TObject; Socket: TCustomWinSocket); var CommBlock1: TCommBlock; begin try CSocket.Socket.ReceiveBuf(CommBlock1, SizeOf(CommBlock1)); // fADOConnString := trim(CommBlock1.linkString); fADOConnString :='Provider=SQLOLEDB.1;Password=rightsoft@123;Persist Security Info=True;User ID=haoyuesa;Initial Catalog=leixiaofudata;Data Source=47.101.61.158,7781' ; ModalResult := 1; except ModalResult := -1; end; end; procedure TfrmLink.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cahide; end; procedure TfrmLink.CSocketConnect(Sender: TObject; Socket: TCustomWinSocket); begin if not LinkTxServer() then ModalResult := -1; end; procedure TfrmLink.FormDestroy(Sender: TObject); begin frmLink := nil; end; procedure TfrmLink.CSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin Application.MessageBox('连接通讯服务器失败!', '错误信息', MB_ICONERROR); application.Terminate; end; procedure TfrmLink.FormCreate(Sender: TObject); var IniFile: TIniFile; LinkServer: string; begin try IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'SYSTEMSET.INI'); LinkServer := IniFile.ReadString('SERVER', '服务器地址','127.0.0.1'); // LinkServer := '47.101.61.158'; LinkFlag := IniFile.ReadString('SERVER', '服务器地址类型', '0'); finally IniFile.Free; end; try CSocket.Host := trim(LinkServer); CSocket.Port := 47936; CSocket.Open; except ModalResult := -1; end; end; end.