zoukankan      html  css  js  c++  java
  • UDP协议实现客户服务器数据交互

    UDP协议实现客户服务器数据交互

    按照往常一样将今天自己写的题目答案写在了博客上

    习题:
    客户端循环发送消息给服务端,服务端循环接收,并打印出来,直到收到Bye就退出程序。

    package network;
    
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    import java.util.Scanner;
    
    /**
     * 使用udp协议实现的客户端
     * 
     * @author TangJiang 2017年11月18日 下午5:17:55
     *
     */
    public class Client {
    	public static void main(String[] args) throws Exception {
    		// 创建客户端键盘输入对象
    		Scanner s = new Scanner(System.in);
    		// 创建客户端
    		InetSocketAddress client = new InetSocketAddress(10086);
    		// 创建服务端
    		InetSocketAddress server = new InetSocketAddress("127.0.0.1", 10010);
    		// 创建快递员
    		DatagramSocket socket = new DatagramSocket();
    
    		while (true) {
    			// 获得键盘录入的字符串
    			String str = s.nextLine();
    			if (str.equalsIgnoreCase("Bye")) {
    				break;
    			} else {
    
    				// 创建数据包
    				DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length, server);
    				// 发送数据
    				socket.send(packet);
    
    			}
    
    		}
    		// 关闭soket服务
    		socket.close();
    	}
    }
    

      

    package network;
    
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    
    /**
     * 使用udp协议实现服务端接收数据
     * 
     * @author TangJiang 2017年11月18日 下午5:28:32
     *
     */
    public class Server {
    	public static void main(String[] args) throws Exception {
    		// 创建收件方地址
    		InetSocketAddress server = new InetSocketAddress(10010);
    		// 快递员
    		DatagramSocket socket = new DatagramSocket(server);
    
    		while (true) {
    			// 创建一个新的字节数组接收数据包
    			byte[] bs = new byte[1024];
    
    			// 创建数据包
    			DatagramPacket packet = new DatagramPacket(bs, bs.length);
    
    			// 接收数据
    			socket.receive(packet);
    
    			// 处理收到的数据,将字节转换可读的字符串形式
    			String str = new String(bs);
    			System.out.println("收到消息:" + str);
    
    		}
    	}
    }
    

      

  • 相关阅读:
    CSS3中各种属性的意思
    Python全栈Day 18部分知识点
    Python全栈Day 17部分知识点
    Python全栈Day 16部分知识点
    Python全栈Day 15部分知识点
    Python全栈Day 14部分知识点
    Python全栈Day 13部分知识点
    Python全栈Day 12部分知识点
    Python全栈Day 11部分知识点
    时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/tangjiang-code/p/7857992.html
Copyright © 2011-2022 走看看