CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  GAME,图形处理/多媒体

我需要一个简单的网络程序的源代码?

楼主chh1219(箫龙)2002-11-18 18:27:16 在 Delphi / GAME,图形处理/多媒体 提问

支持聊天就可以了,谁能给我弄一个,谢谢! 问题点数: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

相关问题

  • 托盘程序源代码!!
  • 求简单打字练习程序源代码(汇编)送4000分
  • 简单源代码分析
  • 任意的vb小程序的源代码,但是需要有自己版权的。不是公共发布的源代码。
  • 愿意用1000分交换一个非常简单的程序(含源代码)--必须用VFP完成
  • 高分急求win32简单邮件发送程序的源代码例子,不要MFC的,请高手帮忙
  • 请教 怎么实现一个最简单的打字测试速度的程序?求源代码。。急!!谢谢!!!
  • 求一个asp.net(vb.net)开发的简单的新闻发布程序源代码。谢谢了^_^
  • 求ping程序的源代码。。。!
  • 求ping程序的源代码!

关键词

  • socket
  • active
  • client
  • tobject
  • tcustomwinsocket
  • clientsocket
  • serversocket
  • sender
  • tform
  • memo

得分解答快速导航

  • 帖主:chh1219
  • flinming
  • Hermit
  • jacksoft
  • zqdshsy
  • veryok

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo