zoukankan      html  css  js  c++  java
  • JAVA 网络编程(简单的发送端和接受端)

    /*
    	UDP
    	1,将数据及源和目的封装成数据包中,不需要建立连接
    	2,每个数据报的大小在限制在64k
    	3,因为无连接,是不可靠协议的
    	4,不需要建立连接,速度快
    
    	TCP
    	1,建立连接,形成传输数据的通道
    	2,在连接中进行最大数据量传输
    	3,通过三次握手完成连接,是可靠传输协议
    	4,必须建立连接,效率会稍低
    
    
    	Socket
    	1,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  此处设置端口号为1000
    		DatagramSocket 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();
    	}
    }


  • 相关阅读:
    docker使用阿里云Docker镜像库加速
    FastDFS文件系统(二) fastdfs和其他文件系统区别
    CentOS7—HAProxy安装与配置
    安装完CentOS 7 后必做的七件事
    让一个端口同时做两件事:http/https和ssh
    Hyper-v之利用差异磁盘快速创建多个虚拟机
    MySQL5.7安装与配置(YUM)
    CentOS7 配置阿里云yum源
    60款顶级大数据开源工具
    ubuntu设置分辨率
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258523.html
Copyright © 2011-2022 走看看