我需要一个简单的网络程序的源代码? 支持聊天就可以了,谁能给我弄一个,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ScktComp, ExtCtrls, ComCtrls;type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; MainMenu1: TMainMenu; File1: TMenuItem; listen1: TMenuItem; connect1: TMenuItem; StatusBar1: TStatusBar; Memo2: TMemo; Memo1: TMemo; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; NonConnect1: TMenuItem; procedure FormCreate(Sender: TObject); procedure listen1Click(Sender: TObject); procedure connect1Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button2Click(Sender: TObject); procedure NonConnect1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; server:string; isserver:boolean; Client_Flag : Boolean = False; Server_Flag : Boolean = False;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin listen1click(nil);end;procedure TForm1.listen1Click(Sender: TObject);begin memo1.Lines.Clear; memo2.Lines.Clear; listen1.Checked:=not listen1.Checked; if listen1.Checked then begin clientsocket1.Active:=false; serversocket1.Active:=true; statusbar1.Panels[0].Text:='listening......'; end else begin if serversocket1.Active then serversocket1.Active:=false; clientsocket1.Active:=true; statusbar1.Panels[0].Text:=''; end;end;procedure TForm1.connect1Click(Sender: TObject);begin if clientsocket1.Active then clientsocket1.Active:=false; server := '192.168.1.'; if inputquery('computer to connect to ','address name:',server) then if length(server)>0 then with clientsocket1 do begin Address:=server; try active:=true; except end; end;end;procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);begin statusbar1.Panels[0].Text:='connected to : '+socket.RemoteHost; Client_Flag := true;end;procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);begin isserver:=true; statusbar1.Panels[0].Text:='connected to : '+socket.RemoteAddress; Server_Flag := true;end;procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);begin memo2.Lines.Add(socket.receivetext)end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);begin memo2.Lines.Add(socket.ReceiveText);end;procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);begin memo2.Lines.Add('error connecting to: '+server); errorcode:=0;end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=VK_return then begin if Server_Flag then serversocket1.socket.connections[0].sendtext(memo1.lines[memo1.lines.count-1]) else ClientSocket1.Socket.SendText(memo1.lines[memo1.lines.count-1]); end; end;procedure TForm1.Button1Click(Sender: TObject);begin Form1.connect1Click(Sender);end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin ClientSocket1.Active := False; ServerSocket1.Active := False;end;procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);begin ErrorCode := 0;end;procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);begin Form1.StatusBar1.Panels[0].Text := '断开';end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);begin Form1.StatusBar1.Panels[0].Text := '断开';end;procedure TForm1.Button2Click(Sender: TObject);begin if Client_Flag then ClientSocket1.Active := False; if Server_Flag then serversocket1.socket.connections[0].Close;end;procedure TForm1.NonConnect1Click(Sender: TObject);begin Form1.Button2Click(Sender);end;end. 呵呵,delphi自带就有个chat,不过我还有个netchat的源程序,哪儿下载的忘了,你要的话留个email 看看这个是不是你需要的http://www.2ccc.com/softview.php?type=f&softid=204&PHPSESSID=497502c1bee95855ea0b9a74e10f3548 这里找不到你满意的答案吗?来这里试试!这里有问必答http://systemer.51.net/cgi-bin/leoboard.cgi希望你能在这里找到你满意的答案! 关于窗口移动的问题 字符串操作的问题 求助:哪位知道怎么获取本机的真实IP地址呢? 今天高兴放分500 怎样处理鼠标移出控件时的事件 请将下列的C++转化成Delphi 远程拨号连接数据库 谁能推荐几本Delphi的好书?? 请问,如何动态编辑AdoDataSet的CommandText属性? dll的调用问题!请问怎么解决? 如果激活一个窗口 请问如何清除Tcanvas画的图形?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ScktComp, ExtCtrls, ComCtrls;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
MainMenu1: TMainMenu;
File1: TMenuItem;
listen1: TMenuItem;
connect1: TMenuItem;
StatusBar1: TStatusBar;
Memo2: TMemo;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
NonConnect1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure listen1Click(Sender: TObject);
procedure connect1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button2Click(Sender: TObject);
procedure NonConnect1Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
server:string;
isserver:boolean;
Client_Flag : Boolean = False;
Server_Flag : Boolean = False;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
listen1click(nil);
end;procedure TForm1.listen1Click(Sender: TObject);
begin
memo1.Lines.Clear;
memo2.Lines.Clear;
listen1.Checked:=not listen1.Checked;
if listen1.Checked then
begin
clientsocket1.Active:=false;
serversocket1.Active:=true;
statusbar1.Panels[0].Text:='listening......';
end
else
begin
if serversocket1.Active then
serversocket1.Active:=false;
clientsocket1.Active:=true;
statusbar1.Panels[0].Text:='';
end;
end;procedure TForm1.connect1Click(Sender: TObject);
begin
if clientsocket1.Active then
clientsocket1.Active:=false; server := '192.168.1.';
if inputquery('computer to connect to ','address name:',server) then
if length(server)>0 then
with clientsocket1 do
begin
Address:=server;
try
active:=true;
except
end;
end;
end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.Panels[0].Text:='connected to : '+socket.RemoteHost;
Client_Flag := true;
end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
isserver:=true;
statusbar1.Panels[0].Text:='connected to : '+socket.RemoteAddress;
Server_Flag := true;
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Add(socket.receivetext)
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Add(socket.ReceiveText);
end;procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
memo2.Lines.Add('error connecting to: '+server);
errorcode:=0;
end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_return then
begin
if Server_Flag then
serversocket1.socket.connections[0].sendtext(memo1.lines[memo1.lines.count-1])
else
ClientSocket1.Socket.SendText(memo1.lines[memo1.lines.count-1]);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.connect1Click(Sender);
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
end;procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode := 0;
end;procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StatusBar1.Panels[0].Text := '断开';
end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StatusBar1.Panels[0].Text := '断开';
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if Client_Flag then
ClientSocket1.Active := False;
if Server_Flag then
serversocket1.socket.connections[0].Close;
end;procedure TForm1.NonConnect1Click(Sender: TObject);
begin
Form1.Button2Click(Sender);
end;end.
不过我还有个netchat的源程序,哪儿下载的忘了,你要的话留个email
http://www.2ccc.com/softview.php?type=f&softid=204&PHPSESSID=497502c1bee95855ea0b9a74e10f3548
这里有问必答
http://systemer.51.net/cgi-bin/leoboard.cgi
希望你能在这里找到你满意的答案!