Java UDP

package net.cmono._20130709;
import java.io.IOException;
import java.net.DatagramSocket;
public class MainClass {
    public static void main(String[] args) throws IOException {
        DatagramSocket sendds = new DatagramSocket();
        DatagramSocket receds = new DatagramSocket(10000);
                           
        new Thread(new UDPrece(receds)).start();
                           
        Thread th1 = new Thread(new UDPsend(sendds));
        th1.start();
                            
                           
    }
}

package net.cmono._20130709;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPsend implements Runnable {
    private DatagramSocket ds;
    public UDPsend(DatagramSocket ds) {
        this.ds = ds;
    }
    public void run() {
        try {
            // 创建要发送的数据包
            while (true) {
                // 使用字节流的缓冲区输入数据
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        System.in));
                String line = null;
                while ((line = br.readLine()) != null) {
                    // 创建数据包来存储输入的数据
                    if ("886".equals(line))
                        break;
                    byte[] buf = line.getBytes();
                    //发送中文
//                  DatagramPacket dp = new DatagramPacket(buf, buf.length,
//                          InetAddress.getByName("127.0.0.1"), 10000);
                    //发送英语
                    DatagramPacket dp = new DatagramPacket(buf, line.length(),
                            InetAddress.getByName("127.0.0.1"), 10000);
                    ds.send(dp);
                               
                }
            }
        } catch (Exception e) {
            throw new RuntimeException("sjk");
        }
    }
}

package net.cmono._20130709;
import java.net.*;
public class UDPrece implements Runnable {
    private DatagramSocket ds;
    public UDPrece(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 ip = dp.getAddress().getHostAddress();
                String data = new String(dp.getData(), 0, dp.getLength());
                int port = dp.getPort();
                System.out.println(ip + ":" + data + ":" + port);
                   
            }
        } catch (Exception e) {
            throw new RuntimeException("sjk");
        }
    }
}


知识共享许可协议
《Java UDP》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
相邻依据:发表时间
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

2 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     174.28ms