zoukankan      html  css  js  c++  java
  • UDP通信

    UDPServer.java

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.StringReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    public class UDPServer{
    	public static void main(String[] args) throws IOException{
    		new UDPServerThread().start();
    	}
    }
    class UDPServerThread extends Thread{
    	protected DatagramSocket socket=null;
    	protected BufferedReader in =null;
    	protected Boolean moreQuotes = true;
    	public UDPServerThread() throws IOException{
    		super();
    		socket = new DatagramSocket(4445);
    		in = new BufferedReader(new StringReader("one
    two
    three"));
    	}
    	public void run(){
    		while(moreQuotes){
    			try{
    				byte[] buf=new byte[256];
    				DatagramPacket packet=new DatagramPacket(buf,buf.length);
    				socket.receive(packet);
    				
    				String received =new String(packet.getData(),0,packet.getLength(),"utf-8");
    				System.out.println("Server received: "+received);									
    				
    				String dString = getNextQuote();
    				
    				buf=dString.getBytes("utf-8");
    				
    				InetAddress address =packet.getAddress();
    				int port =packet.getPort();
    				packet = new DatagramPacket(buf,buf.length,address,port);
    				socket.send(packet);
    			}catch(IOException e){
    				e.printStackTrace();
    				moreQuotes = false;
    			}
    		}
    		socket.close();
    	}
    	protected String getNextQuote(){
    		String returnValue=null;
    		try{
    			if((returnValue=in.readLine())==null){
    				in.close();
    				moreQuotes=false;
    				returnValue="No more quotes.Goodbye.";
    			}
    		}catch(IOException e){
    			returnValue="IOException occurred.";
    		}
    		return returnValue;
    	}
    }
    

      

    UDPClient.java

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    class UDPClient{
    	public UDPClient(){
    		
    	}
    	public static void main(String[] args) throws IOException{
    		if(args.length!=1){
    			System.out.println("Usage:java UDPClient……");
    			return;
    		}
    		DatagramSocket socket = new DatagramSocket();
    		
    		byte[] buf =new byte[256];
    		buf[0]='O';
    		buf[1]='S';
    		InetAddress address= InetAddress.getByName(args[0]);
    		DatagramPacket packet =new DatagramPacket(buf,buf.length,address,4445);
    		socket.send(packet);
    		String send =new String(packet.getData(),0,packet.getLength(),"utf-8");
    		System.out.println("Client send: "+send);
    
    		
    		packet =new DatagramPacket(buf,buf.length);
    		socket.receive(packet);
    		
    		String received =new String(packet.getData(),0,packet.getLength(),"utf-8");
    		System.out.println("Server Say: "+received);
    		
    		socket.close();
    	}
    }
    

     输出:

  • 相关阅读:
    Post返回json值
    调用接口并获取放回json值
    c# 获取IP
    sqlserver2008不允许保存更改
    判断客户端是否是手机或者PC
    3.docker tomcat集群
    1.docker 安装
    Maven profiles 多环境配置
    MySQL 定时任务
    MyBatis 三剑客
  • 原文地址:https://www.cnblogs.com/yuanzhenliu/p/5788957.html
Copyright © 2011-2022 走看看