◆用UDP編寫網絡聊天程序

          /**
          ?* @(#)Chat1.java
          ?*
          ?* Chat1 application
          ?*
          ?* @author
          ?* @version 1.00 2007/1/29
          ?*/
          ?import java.awt.List;
          ?import java.awt.*;
          ?import java.awt.event.*;
          ?import java.net.*;
          ?import java.util.*;
          public class Chat1 extends Frame
          {
          ?List lst=new List(6);
          ?TextField tfIP=new TextField(15);
          ?TextField tfData=new TextField(20);
          ?DatagramSocket ds=null;
          ??? public Chat1()
          ??? {
          ??? ?this.addWindowListener(new WindowAdapter()
          ??? ?{
          ??? ??public void windowClosing(WindowEvent e)
          ??? ??{
          ??? ???ds.close();
          ??? ???e.getWindow().dispose();
          ??? ???System.exit(0);
          ??? ??}
          ??? ?});
          ??? ?Panel pl=new Panel();
          ??? ?pl.setLayout(new BorderLayout());
          ??? ?pl.add(tfIP,BorderLayout.WEST);
          ??? ?pl.add(tfData,BorderLayout.EAST);
          ??? ?this.add(lst,BorderLayout.CENTER);
          ??? ?this.add(pl,BorderLayout.SOUTH);
          ??? ?
          ??? ?try
          ??? ?{
          ????ds=new DatagramSocket(3000);
          ??? ?}
          ??? ?catch(Exception e)
          ??? ?{
          ??? ??e.printStackTrace();
          ??? ?}
          ??? ?
          ??? ?new Thread(new Runnable()
          ??? ?{
          ??? ??public void run()
          ??? ??{
          ??? ???byte []buf=new byte [1024];
          ??? ???DatagramPacket dp=new DatagramPacket(buf,1024);
          ??? ???while(true)
          ??? ???{
          ??? ????try
          ??? ????{
          ??? ?????ds.receive(dp);
          ??? ?????Calendar c=Calendar.getInstance();
          ??? ?????lst.add(new String(dp.getData(),0,dp.getLength())+"??? from: "+
          ??? ??????dp.getAddress().getHostAddress()+":"+dp.getPort()+new Date(),0);?
          ??? ????}
          ??? ????catch(Exception e)
          ??? ????{
          ??? ?????if(ds.isClosed()==false)
          ??? ?????{
          ??? ??????e.printStackTrace();
          ??? ?????}?
          ??? ????}?
          ??? ???}
          ??? ??}
          ??? ?}).start();
          ??? ?
          ??? ?tfData.addActionListener(new ActionListener()
          ??? ?{
          ??? ??public void actionPerformed(ActionEvent e)
          ??? ??{
          ??? ???byte []buf=tfData.getText().getBytes();
          ??? ???try
          ??? ???{
          ??? ????DatagramPacket dp=new DatagramPacket(buf,buf.length,
          ??? ?????InetAddress.getByName(tfIP.getText()),3000);
          ??? ????ds.send(dp);
          ??? ???}
          ??? ???catch(Exception ex)
          ??? ???{
          ??? ????ex.printStackTrace();
          ??? ???}
          ??? ???//lst.add(tfData.getText());
          ??? ???tfData.setText("");
          ??? ???
          ??? ??}
          ??? ?});
          ??? ?
          ??? ?
          ??? }
          ??? public static void main(String[] args)
          ??? {
          ??? ?
          ??? ?// TODO, add your application code
          ??? ?System.out.println("Hello World!");
          ??? ?Chat1 mainFrame=new Chat1();
          ??? ?mainFrame.setTitle("Chat");
          ??? ?mainFrame.setBounds(300,200,300,400);
          ??? ?mainFrame.setVisible(true);
          ??? ?mainFrame.setResizable(false);
          ??? }
          }

          posted on 2007-01-29 20:31 大頭劍客 閱讀(297) 評論(0)  編輯  收藏 所屬分類: 學習筆記

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          公告

          寫字樓里寫字間,寫字間里程序員;
          程序人員寫程序,又拿程序換酒錢;
          酒醒只在網上坐,酒醉還來網下眠;
          酒醉酒醒日復日,網上網下年復年;
          但愿老死電腦間,不愿鞠躬老板前;
          奔馳寶馬貴者趣,公交自行程序員;
          別人笑我忒瘋癲,我笑自己命太賤;
          不見滿街漂亮妹,哪個歸得程序員.
          不管前面是地雷陣還是萬丈深淵,
          我都將勇往直前,義無反顧,
          鞠躬盡瘁,死而后已。
          —— 朱镕基總理

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          學習園地

          最新隨筆

          搜索

          積分與排名

          最新評論

          主站蜘蛛池模板: 云林县| 沂源县| 永宁县| 大连市| 祁门县| 台南县| 石柱| 靖宇县| 陵川县| 兰溪市| 迭部县| 沿河| 类乌齐县| 米泉市| 武宁县| 龙陵县| 横山县| 兴安县| 桐城市| 稻城县| 婺源县| 忻州市| 乌拉特中旗| 台北县| 荆门市| 安新县| 会昌县| 山丹县| 霍城县| 古交市| 桦南县| 连山| 遵义市| 班玛县| 十堰市| 平利县| 太白县| 萨嘎县| 清新县| 衢州市| 贵溪市|