JAVA 网络编程(简单的发送端和接受端)

来源:互联网 发布:欧陆风云4mac汉化补丁 编辑:程序博客网 时间:2024/06/04 20:37
/*UDP1,将数据及源和目的封装成数据包中,不需要建立连接2,每个数据报的大小在限制在64k3,因为无连接,是不可靠协议的4,不需要建立连接,速度快TCP1,建立连接,形成传输数据的通道2,在连接中进行最大数据量传输3,通过三次握手完成连接,是可靠传输协议4,必须建立连接,效率会稍低Socket1,Socket 就是为了网络服务提供的一种机制2,通信的两端都有Socket 3,网络通信其实就是Socket之间的通信4,数据在两个Socket间通过IO传输*/
import java.net.*;import java.io.*;//发送端class UDPSend{public static void main(String []args) throws Exception{//1,创建UDP服务 通过DatagramSocket 对象DatagramSocket ds = new DatagramSocket();//键盘录入BufferedReader bufr =new BufferedReader(new InputStreamReader(System.in));String line = null;while((line = bufr.readLine()) != null){if("Bye".equals(line))break;//将字符串转变成字节流byte [] buf = line.getBytes();//2,确定数据 并封装成数据包DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("127.1"),1000);//3 通过socket 服务 将已有的数据包发送出去 通过send 方法ds.send(dp);}//关闭资源ds.close();}} class UDPRecv{public static void main(String []args) throws Exception{// 1  创建UDP socket  此处设置端口号为1000DatagramSocket ds = new DatagramSocket(1000);while(true){//2  定义数据包 用于存储数据byte []buf = new byte[1024];DatagramPacket dp = new DatagramPacket(buf,buf.length);//3 通过服务的receive  方法将收到的数据存入数据包中ds.receive(dp);//4  通过数据包的方法获取其中的数据String ip = dp.getAddress().getHostAddress();String data = new String(dp.getData(),0,dp.getLength());System.out.println(ip + "::"+data);}//关闭资源ds.close();}}


0 0
原创粉丝点击