网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi编写局域网中的聊天程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

Internet盛行的今天,网上聊天已成为一种时尚。同时,各单位已建成了自己的局域网;能否在局域网上实现聊天呢?可以,网上到处都有这种工具。当然,我们可以拥有自己版权的聊天工具。
  User Datagram Protocol (UDP)协议,是一种无连接协议。在Delphi中利用这种协议,可以轻松的编写出聊天程序,以下的程序,在Delphi 5+Pwin98中通过。
  打开Delphi,新建Application,放置以下几个控件:Panel1、Panel2,其属性如下:
FORM1.caption:=''''聊天工具''''
panel1.align:=albottom
panel2.align:=alclient
  然后,放置以下控件:Edit1,ListBox1,Memo1,Button1,Button2,BitBtn1, Nmudp1其主要控件的属性如下:
nmudp1.localport:=8888(可自定义)
nmudp1.remoteport:=8888(与localport相同)
程序如下:
  unit main;
  interface
  uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, NMUDP, Menus, ComCtrls,WinSock; file://增加WinSock
  type
  TForm1 = class(TForm)
  NMUDP1: TNMUDP;
  Panel1: TPanel;
  Panel2: TPanel;
  Label1: TLabel;
  Edit1: TEdit;
  BitBtn1: TBitBtn;
  Memo1: TMemo;
  Panel3: TPanel;
  Panel4: TPanel;
  ListBox1: TListBox;
  Button1: TButton;
  Button2: TButton;
  procedure FormShow(Sender: TObject);
  procedure BitBtn1Click(Sender: TObject);
  procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
                 FromIP: String; Port: Integer);
  procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  private
   { Private declarations }
  public
   { Public declarations }
  end;
  var
  Form1: TForm1;
  ComputerName: array[0..127] of Char;
  implementation
  {$R *.DFM}
  procedure TForm1.FormShow(Sender: TObject);
  var
   sz: dword;
  begin
   sz := SizeOf(Computername);
   GetComputerName(ComputerName, sz);//得到本机的标识
   ListBox1.Items.Clear;
   ListBox1.Items.Add(''''大家'''');//在网友清单中,增加"大家"和
   ListBox1.Items.Add(ComputerName);//本机名称
   ListBox1.ItemIndex:=0;
  end;
  procedure TForm1.BitBtn1Click(Sender: TObject);
  var
   MyStream: TMemoryStream;
   TmpStr: String;
   i:integer;
  Begin
   if Edit1.Text<>'''''''' then file://如果所说的内容不为空,则发送。
    begin
     NMUDP1.ReportLevel := Status_Basic;
     NMUDP1.RemotePort :=8888;//端口为:8888,可以自己定义,但必须与LocalPort相一致。
     if ListBox1.Items[ListBox1.ItemIndex]=ComputerName then
      Edit1.Text:=ComputerName+''''自言自语道:''''+Edit1.Text file://如果和自己对话.
     Else
      Edit1.Text:=ComputerName+''''对''''+ListBox1.Items[listbox1.itemindex]+''''说:''''+Edit1.Text;
      TmpStr :=Edit1.text;
      MyStream := TMemoryStream.Create;
      try
      MyStream.Write(TmpStr, Length(Edit1.Text));
      if ListBox1.ItemIndex=0 then
       begin
        for i:=1 to ListBox1.Items.Count-1 do file://如果选择"大家",则对所有的网友发送信息

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号