最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基于socket實(shí)現(xiàn)簡(jiǎn)易聊天室實(shí)例

 更新時(shí)間:2015年05月29日 12:46:36   作者:wo_soul  
這篇文章主要介紹了Java基于socket實(shí)現(xiàn)簡(jiǎn)易聊天室的方法,實(shí)例分析了java基于socket實(shí)現(xiàn)聊天室服務(wù)端與客戶(hù)端的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了Java基于socket實(shí)現(xiàn)簡(jiǎn)易聊天室的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

chatroomdemo.java

package com.socket.demo; 
import java.io.IOException; 
import java.net.DatagramSocket; 
public class ChatRoomDemo { 
  /** 
   * @param args 
   * @throws IOException 
   */ 
  public static void main(String[] args) throws IOException { 
    System.out.println("----進(jìn)入聊天室----"); 
    DatagramSocket send = new DatagramSocket(); 
    DatagramSocket rece = new DatagramSocket(10001); 
    new Thread(new SendDemo(send)).start();// 啟動(dòng)發(fā)送端線程 
    new Thread(new ReceiveDemo(rece)).start();// 啟動(dòng)接收端線程 
  } 
}

SendDemo.java

package com.socket.demo; 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
import java.net.InetAddress; 
public class SendDemo implements Runnable { 
  private DatagramSocket ds; 
  // 有參數(shù)構(gòu)造函數(shù) 
  public SendDemo(DatagramSocket ds) { 
    this.ds = ds; 
  } 
  @Override 
  public void run() { 
    try { 
      BufferedReader bufr = new BufferedReader(new InputStreamReader( 
          System.in)); 
      String line = null; 
      while ((line = bufr.readLine()) != null) { 
        byte[] buf = line.getBytes(); 
        /* 
         * //192.168.1.255是ip段廣播地址,發(fā)給這個(gè)IP的信息, 
         * 在192.168.1.1-192.168.1.255的ip段的所有IP地址都能收到消息 
         */ 
        DatagramPacket dp = new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.255"), 10001);
        ds.send(dp); 
        if ("886".equals(line)) 
          break; 
      } 
      ds.close(); 
    } catch (Exception e) { 
    } 
  } 
}

ReceiveDemo.java

package com.socket.demo; 
import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
public class ReceiveDemo implements Runnable { 
  private DatagramSocket ds; 
  public ReceiveDemo(DatagramSocket ds) { 
    this.ds = ds; 
  } 
  @Override 
  public void run() { 
    try { 
      while (true) { 
        // 2,創(chuàng)建數(shù)據(jù)包。 
        byte[] buf = new byte[1024]; 
        DatagramPacket dp = new DatagramPacket(buf, buf.length);
        // 3,使用接收方法將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)包中。 
        ds.receive(dp);// 阻塞式的。 
        // 4,通過(guò)數(shù)據(jù)包對(duì)象的方法,解析其中的數(shù)據(jù),比如,地址,端口,數(shù)據(jù)內(nèi)容。 
        String ip = dp.getAddress().getHostAddress(); 
        int port = dp.getPort(); 
        System.out.println("----port-----" + port); 
        String text = new String(dp.getData(), 0, dp.getLength()); 
        System.out.println(ip + "::" + text); 
        if (text.equals("886")) { 
          System.out.println(ip + "....退出聊天室"); 
        } 
      } 
    } catch (Exception e) { 
    } 
  } 
}

運(yùn)行效果圖如下:

希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

彩票| 舞钢市| 炉霍县| 云霄县| 正宁县| 太和县| 八宿县| 车致| 石台县| 奉节县| 隆安县| 怀集县| 当涂县| 惠水县| 陇西县| 灵璧县| 阳山县| 丰台区| 灵宝市| 庄河市| 县级市| 云龙县| 蒙城县| 威海市| 聂拉木县| 嘉禾县| 抚松县| 四平市| 芜湖县| 富民县| 钟山县| 外汇| 遂溪县| 田东县| 玉环县| 龙胜| 广西| 甘孜县| 长治市| 松潘县| 额尔古纳市|