java編寫即時聊天程序

    時間:2024-08-26 09:46:45 JAVA認證 我要投稿
    • 相關推薦

    java編寫即時聊天程序

      怎樣用java編寫一個即時聊天程序呢?下面yjbys小編就為大家分享最新的java即時聊天程序編寫方法,一起來看看吧!

      import java.awt.*;

      import java.awt.event.*;

      import java.net.*;

      /**

      * Sample application using Frame.

      *

      * @author

      * @version 1.00 07/06/13

      */

      public class Chatp2pFrame extends Frame {

      List dataList=new List(26);

      TextField Tfip=new TextField(18);

      TextField Tfdata=new TextField(19);

      Label Lip=new Label("輸入對方的IP地址:");

      Label Ldata=new Label("輸入聊天的內容:");

      DatagramSocket socket=null;

      /**

      * The constructor.

      */

      public Chatp2pFrame() {

      try

      {

      socket=new DatagramSocket(5000);

      }

      catch(Exception e)

      {

      e.printStackTrace();

      }

      Tfip.setSize(150,15);

      Tfdata.setSize(150,15);

      Tfip.setFocusable(true);

      Tfip.setForeground(Color.blue);

      Tfdata.setForeground(Color.red);

      dataList.setForeground(Color.black);

      this.add(dataList,"North");

      Panel p1=new Panel();

      Panel p2=new Panel();

      p1.setLayout(new BorderLayout());

      p2.setLayout(new BorderLayout());

      this.add(p1,"Center");

      this.add(p2,"South");

      p1.add(Lip,"West");

      p1.add(Ldata,"East");

      p2.add(Tfip,"West");

      p2.add(Tfdata,"East");

      new Thread(new Runnable()

      {

      public void run()

      {

      byte[] buf=new byte[1024];

      DatagramPacket packet=new DatagramPacket(buf,1024);

      while(true)

      {

      try

      {

      socket.receive(packet);

      dataList.add(new String(buf,0,packet.getLength())+" FROM "+packet.getAddress().getHostAddress()+":"+packet.getPort(),0);

      }

      catch(Exception e)

      {

      if(!socket.isClosed())

      {

      e.printStackTrace();

      }

      }

      }

      }

      }

      ).start();

      Tfdata.addActionListener(new ActionListener()

      {

      public void actionPerformed(ActionEvent e)

      {

      try

      {

      byte[] buf=new byte[1024];

      buf=Tfdata.getText().getBytes();

      DatagramPacket packet=new DatagramPacket(buf,buf.length,

      InetAddress.getByName(Tfip.getText()),5000);

      socket.send(packet);

      dataList.add(new String(buf,0,packet.getLength())+" TO "+packet.getAddress().getHostAddress()+":"+packet.getPort(),0);

      }

      catch(Exception x)

      {

      x.printStackTrace();

      }

      Tfdata.setText("");

      }

      }

      );

      MenuBar menuBar = new MenuBar();

      Menu menuFile = new Menu();

      MenuItem menuFileExit = new MenuItem();

      menuFile.setLabel("文件");

      menuFileExit.setLabel("退出");

      // Add action listener.for the menu button

      menuFileExit.addActionListener

      (

      new ActionListener() {

      public void actionPerformed(ActionEvent e) {

      Chatp2pFrame.this.windowClosed();

      }

      }

      );

      menuFile.add(menuFileExit);

      menuBar.add(menuFile);

      setTitle("我的聊天程序");

      setMenuBar(menuBar);

      setSize(new Dimension(310, 500));

      this.setResizable(false);

      // Add window listener.

      this.addWindowListener

      (

      new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

      Chatp2pFrame.this.windowClosed();

      }

      }

      );

      }

      /**

      * Shutdown procedure when run as an application.

      */

      protected void windowClosed() {

      // TODO: Check if it is safe to close the application

      // Exit application.

      socket.close();

      System.exit(0);

      }

      public static void main(String[] args) {

      // Create application frame.

      Chatp2pFrame frame = new Chatp2pFrame();

      // Show frame

      frame.setVisible(true);

      }

      }

    【java編寫即時聊天程序】相關文章:

    Java怎么編寫走馬燈程序08-19

    Java怎么編寫Oracle存儲過程09-15

    如何編譯java程序09-28

    Java編寫計算器的的常見做法01-22

    Java程序開發與運行環境06-21

    實現鼠標畫圖的Java程序06-22

    如何使用Swing編寫全屏程序09-20

    sun認證java程序員須知Java日志框架09-11

    java程序中如何調用linux命令08-27

    初級java程序員面試要求01-22

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      尤物久久免费一区二区三区 | 亚洲视频一区二区在线观看 | 五月婷久久综合狠狠爱97 | 亚洲国产精品高清线久久AV | 欧美精品白嫩少妇视频在线 | 又紧又爽精品一区二区 |