• 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();
    	}
    }


  • 相关阅读:
    PHP实现用户注册并保存数据到文件
    浏览器与服务端请求响应流程与HTTP协议
    apache(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试 ...
    webpack4.0样式处理(1)
    webpack4.0:html插件
    webpack4.0:webpack基础配置
    webpack4.0---url-loader
    webpack4.0学习(1)
    深拷贝和浅拷贝
    'mongoimport'不是内部或外部命令,也不是可运行的程序
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258523.html
Copyright © 2020-2023  润新知