网络编程--群聊
群聊
使用upd協議和多線程實現群聊功能
主函數:
發送功能
package cn.itcast.udp;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException;//群聊發送端 public class ChatSender extends Thread {@Overridepublic void run() {try {//建立udp的服務DatagramSocket socket = new DatagramSocket();//準備數據,把數據封裝到數據包中發送BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));//實現鍵盤輸入String line = null;DatagramPacket packet = null;while((line = keyReader.readLine())!=null){//把數據封裝 到數據數據包中,然后發送數據。packet = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName("192.168.15.255"), 9090);//把數據發送出去socket.send(packet);}//關閉 資源socket.close();} catch (IOException e) {e.printStackTrace();}}}接收功能
//群聊接收端 public class ChatReceive extends Thread {@Overridepublic void run() {try {//建立udp的服務,要監聽一個端口DatagramSocket socket = new DatagramSocket(9090);//準備空的數據包存儲數據byte[] buf = new byte[1024];DatagramPacket packet = new DatagramPacket(buf, buf.length);boolean flag = true;while(flag){socket.receive(packet);// packet.getAddress() 獲取對方數據 包的IP地址對象。System.out.println(packet.getAddress().getHostAddress()+"說:"+new String(buf,0,packet.getLength()));}//關閉資源socket.close();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}總結
- 上一篇: apache commons-beanu
- 下一篇: jade选峰之后怎么去掉_jade使用教