首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 开发频道>利用Delphi编写Socket通信程序

利用Delphi编写Socket通信程序

2004-11-08 09:55作者:AustinLei出处:天极论坛责任编辑:方舟

  · 客户端源码(uClientMain.pas):

unit uClientMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ScktComp, ComCtrls, ToolWin, ExtCtrls, StdCtrls, Buttons;
const
 SocketHost = '172.16.1.6'; //服务器端地址
type
 TfrmClientMain = class(TForm)
 ControlBar1: TControlBar;
 ToolBar1: TToolBar;
 tbConnected: TToolButton;
 tbSend: TToolButton;
 tbClose: TToolButton;
 tbDisconnected: TToolButton;
 ClientSocket: TClientSocket;
 Edit1: TEdit;
 Memo1: TMemo;
 StatusBar: TStatusBar;
 btnSend: TBitBtn;
 procedure tbConnectedClick(Sender: TObject);
 procedure tbDisconnectedClick(Sender: TObject);
 procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
 procedure tbSendClick(Sender: TObject);
 procedure tbCloseClick(Sender: TObject);
 procedure FormShow(Sender: TObject);
 procedure ClientSocketConnect(Sender: TObject;
 Socket: TCustomWinSocket);
 procedure ClientSocketConnecting(Sender: TObject;
 Socket: TCustomWinSocket);
 procedure ClientSocketDisconnect(Sender: TObject;
 Socket: TCustomWinSocket);
 procedure FormClose(Sender: TObject; var Action: TCloseAction);
 procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
 ErrorEvent: TErrorEvent; var ErrorCode: Integer);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 var
  frmClientMain: TfrmClientMain;
  implementation
  {$R *.DFM}
  //打开套接字连接
  procedure TfrmClientMain.tbConnectedClick(Sender: TObject);
  begin
   ClientSocket.Open ;
  end;
  //关闭套接字连接
  procedure TfrmClientMain.tbDisconnectedClick(Sender: TObject);
  begin
   ClientSocket.Close;
  end;
  //接受服务器端的回复
  procedure TfrmClientMain.ClientSocketRead(Sender: TObject;Socket: TCustomWinSocket);
  begin
   Memo1.Lines.Add(Socket.ReceiveText);
  end;
  //发送信息到服务器端
  procedure TfrmClientMain.tbSendClick(Sender: TObject);
  begin
   ClientSocket.Socket.SendText(Edit1.Text);
  end;
  procedure TfrmClientMain.tbCloseClick(Sender: TObject);
  begin
   Close;
  end;
  //设置要连接的服务器端地址
  procedure TfrmClientMain.FormShow(Sender: TObject);
  begin
   ClientSocket.Host := SocketHost;
  end;
  //已经连接到服务器端
  procedure TfrmClientMain.ClientSocketConnect(Sender: TObject;Socket: TCustomWinSocket);
  begin
   tbSend.Enabled := True;
   tbDisconnected.Enabled :=True;
   btnSend.Enabled := True;
   StatusBar.Panels[0].Text := '已经连接到 '+ Socket.RemoteHost ;
  end;
  //正在连接到服务器端
  procedure TfrmClientMain.ClientSocketConnecting(Sender: TObject;Socket: TCustomWinSocket);
  begin
   StatusBar.Panels[0].Text := '正在连接到服务器... ' ;
  end;
  //当断开与服务器端的连接时发生
  procedure TfrmClientMain.ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
  begin
   tbSend.Enabled := False;
   btnSend.Enabled := False;
   tbDisconnected.Enabled := False;
   StatusBar.Panels[0].Text := '已经断开与 '+ Socket.RemoteHost +' 的连接';
  end;
  procedure TfrmClientMain.FormClose(Sender: TObject;
var Action: TCloseAction);
  begin
   ClientSocket.Close ;
  end;
  //当与服务器端的连接发生错误时
  procedure TfrmClientMain.ClientSocketError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;var ErrorCode: Integer);
  begin
   StatusBar.Panels[0].Text := '与服务器端的连接发生错误';
   ErrorCode := 0;
  end;
 end.




关注此文的读者还看过:

返回开发频道首页

共3页。 上一页123

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络