打的冲忙,没怎么加注释
- package com.cn.test;
- import java.io.*;
- import java.net.*;
- /**
- * 聊天程序,一个线程负责发送,一个线程负责接收
- * @author Administrator
- *
- */
- class RcvThread implements Runnable{
- private DatagramSocket ds;
- public RcvThread (DatagramSocket ds){
- this.ds=ds;
- }
- public void run() {
- try {
- while(true){
-
- byte[] buf=new byte[1024];
- DatagramPacket dp=new DatagramPacket(buf, buf.length);
- ds.receive(dp);
- String content=new String(dp.getData(),0,dp.getLength());
- String ip=dp.getAddress().getHostAddress();
- int add=dp.getPort();
- System.out.println("内容"+content+"地址"+ip+"端口"+add);
- }
-
- } catch (Exception e) {
- // TODO 自动生成的 catch 块
- e.printStackTrace();
- }
- }
-
- }
- class SendThread implements Runnable{
- DatagramSocket ds;
- public SendThread(DatagramSocket ds){
- this.ds=ds;
- }
- public void run(){
- try {
- DatagramSocket ds=new DatagramSocket();
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- String line=null;
- while((line=br.readLine())!=null){
- byte [] buf=line.getBytes();
- DatagramPacket dp=new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.4"),5244);
- ds.send(dp);
- if("886".equals(line))break;
- }
- ds.close();
- } catch (Exception e) {
- // TODO 自动生成的 catch 块
- e.printStackTrace();
- }
-
- }
- }
- public class UDPChater {
- public static void main(String[] args) throws SocketException {
- DatagramSocket rds=new DatagramSocket(5244);
- DatagramSocket sds=new DatagramSocket();
- RcvThread rt=new RcvThread(rds);
- SendThread st=new SendThread(sds);
- new Thread(rt).start();
- new Thread(st).start();
- }
- }
复制代码
|
|