我需要一个简单的网络程序的源代码?
支持聊天就可以了,谁能给我弄一个,谢谢! 问题点数:20、回复次数:7Top
1 楼flinming(flinming)回复于 2002-11-18 18:36:30 得分 8
unit Unit1;
interface
uses
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.
Top
2 楼Hermit(替地球省氧气,决定每天少呼吸)回复于 2002-11-18 20:26:34 得分 6
呵呵,delphi自带就有个chat,
不过我还有个netchat的源程序,哪儿下载的忘了,你要的话留个emailTop
3 楼chh1219(箫龙)回复于 2002-11-18 20:36:22 得分 0
哦,对不起我没有说清楚!
我要的是网络游戏的源代码。
还要支持聊天
主要是游戏
谢谢了Top
4 楼jacksoft(小半)回复于 2002-11-21 02:12:35 得分 2
看看这个是不是你需要的
http://www.2ccc.com/softview.php?type=f&softid=204&PHPSESSID=497502c1bee95855ea0b9a74e10f3548Top
5 楼zqdshsy()回复于 2002-11-28 21:00:02 得分 2
学习学习!!!!Top
6 楼veryok()回复于 2002-11-28 21:20:34 得分 2
这里找不到你满意的答案吗?来这里试试!
这里有问必答
http://systemer.51.net/cgi-bin/leoboard.cgi
希望你能在这里找到你满意的答案!Top
7 楼karen(浪子飞)回复于 2002-12-05 10:48:44 得分 0
随便看看!Top




