package com.xjh.demo.socket.udp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class ChatRoom { public static void main(String[] args) throws Exception { DatagramSocket ds = new DatagramSocket(); DatagramSocket dr = new DatagramSocket(12306); SendPro sendPro=new SendPro(ds); RecPro recPro=new RecPro(dr); new Thread(sendPro).start(); new Thread(recPro).start(); } } class SendPro implements Runnable { DatagramSocket datagramSocket; public SendPro(DatagramSocket datagramSocket){ this.datagramSocket=datagramSocket; } @Override public void run() { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); String line = null; try { while ((line = bufferedReader.readLine()) != null) { if ("886".equals(line)) { break; } byte[] bytes = line.getBytes(); InetAddress inetAddress = InetAddress.getByName("127.0.0.1"); int port = 12306; DatagramPacket dataPacket = new DatagramPacket(bytes, bytes.length, inetAddress, port); datagramSocket.send(dataPacket); } } catch (Exception e) { } } } class RecPro implements Runnable { DatagramSocket datagramSocket; public RecPro(DatagramSocket datagramSocket) { this.datagramSocket = datagramSocket; } @Override public void run() { while (true) { byte[] bytes = new byte[1024]; int length = bytes.length; DatagramPacket datagramPacket = new DatagramPacket(bytes, length); try { datagramSocket.receive(datagramPacket); String result = new String(datagramPacket.getData(), 0, datagramPacket.getLength()); System.out.println("recieve message:" + result); } catch (Exception e) { } } } }
UDPSocket發送和接收消息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.