delphi7的Idtcpserver与Idtcpclient 和使用?

举人老爷 2008-03-19 09:08:55
delphi7的Idtcpserver与Idtcpclient 如何使用。知道的请进?
...全文
475 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blessed_Chuan 2008-10-23
  • 打赏
  • 举报
回复
如何发xml字符串啊?
举人老爷 2008-03-29
  • 打赏
  • 举报
回复
有代码发点来,我也知道一个发,一个接。怎样用我不知呀
举人老爷 2008-03-29
  • 打赏
  • 举报
回复
多谢大家的推荐
oushengfen 2008-03-24
  • 打赏
  • 举报
回复
到2ccc上,下载吧,有一个很好的indy10写的例子
AudiQ7 2008-03-22
  • 打赏
  • 举报
回复
呵呵,3楼的兄弟说得经典。
同意2楼的。
lyguo 2008-03-22
  • 打赏
  • 举报
回复
一个管发,一个管收.
一滴木 2008-03-21
  • 打赏
  • 举报
回复
demo中有一个例子,但是不太好,写的不是很明白。
以下是我从网上找的一个,然后自己改了改。
unit MainFrm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdCustomTCPServer, IdTCPServer, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, ComCtrls, StdCtrls, ExtCtrls, IdContext;

type
TfrmMain = class(TForm)
tcpClient: TIdTCPClient;
tcpServer: TIdTCPServer;
statusBar: TStatusBar;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
serverip: TLabeledEdit;
serverport: TLabeledEdit;
serverstop: TButton;
clientcon: TButton;
clientdiscon: TButton;
memo: TMemo;
msg: TEdit;
sendbt: TButton;
serverstart: TButton;
procedure tcpServerExecute(AContext: TIdContext);
procedure tcpServerConnect(AContext: TIdContext);
procedure serverstopClick(Sender: TObject);
procedure serverstartClick(Sender: TObject);
procedure sendbtClick(Sender: TObject);
procedure msgKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure clientdisconClick(Sender: TObject);
procedure clientconClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.clientconClick(Sender: TObject);
begin //客户端点了连接按钮
if serverip.Text = '' then
begin
MessageDlg('请输入服务器IP',mtError,[mbok],0);
serverip.SetFocus;
end;
if serverport.Text = '' then
begin
MessageDlg('请输入服务器端口号',mtError,[mbok],0);
serverport.SetFocus;
end;
tcpclient.Host := serverip.Text;
tcpClient.Port := StrtoInt(serverport.Text);
try
tcpclient.Connect;
statusBar.SimpleText := '已连接' + serverip.Text;
memo.Lines.Add('已连接' + serverip.Text)
except
statusBar.SimpleText := '服务器连接不上';
end;
end;

procedure TfrmMain.clientdisconClick(Sender: TObject);
begin //客户端点了断开
tcpclient.Disconnect();
memo.Lines.Add('客户端已断开');
statusbar.SimpleText := '客户端已断开';
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
//自动启动服务器
try
tcpserver.Active := true;
statusbar.SimpleText := '服务器已启动';
except
statusbar.SimpleText := '本软件使用的端口被占用';
end;
end;

procedure TfrmMain.msgKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
sendbt.Click;
end;
end;

procedure TfrmMain.sendbtClick(Sender: TObject);
begin
//发送信息
if msg.Text = '' then
begin
MessageDlg('请输入要发送的信息',mtError,[mbOk],0);
msg.SetFocus;
end
else
begin
tcpClient.Socket.WriteLn(msg.Text);
//tcpClient.SendCmd(msg.Text);
//tcpclient.WriteLn(msg.Text);
end;
end;

procedure TfrmMain.serverstartClick(Sender: TObject);
begin
//服务器端启动
if not tcpServer.Active then
begin
tcpServer.Active := true;
statusBar.SimpleText := '服务器端已启动';
end;
end;

procedure TfrmMain.serverstopClick(Sender: TObject);
begin
//服务器端停止
if tcpServer.Active then
begin
tcpServer.Active := false;
statusBar.SimpleText := '服务器端已停止';
end;
end;

procedure TfrmMain.tcpServerConnect(AContext: TIdContext);
begin
memo.Lines.Add('接收来自'+AContext.Connection.Socket.Binding.PeerIP+'的连接');
end;

procedure TfrmMain.tcpServerExecute(AContext: TIdContext);
var
readstr: string;
begin
readstr := AContext.Connection.Socket.ReadLn();
memo.Lines.Add(readstr);
end;

end.
brightyang 2008-03-19
  • 打赏
  • 举报
回复
网上很多的例子的

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧