zoukankan      html  css  js  c++  java
  • java UDP服务端

    public class ISSIhttpserverThread extends Thread {
        private int port = 23024;
        DatagramSocket server = null;
        DatagramPacket packets = null;
    
        private int requestLen = 0;
        private ArrayList<String> headList = new ArrayList<String>();
        private String bodyStr;
        int position = 0;
    
        public ISSIhttpserverThread() {
        
        }
    
        @Override
        public void run() {
            //receive();
            
                try {
                     this.port =AgentGlobals.getXMLProperty("pocudpport", 23024);
                        //this.port = 23034;
                    
                    server = new DatagramSocket(port);
                    Log.info("UDP登录port:" + port);
                } catch (Exception e) {
                    // TODO: handle exception
                }
            while (true) {
                try {
                    // �μ�һ�����ݱ���
                    byte[] b = new byte[1024];
    
                    packets = new DatagramPacket(b, b.length);
                    server.receive(packets);
                    UDPServerThread udpserverthread=new UDPServerThread(packets);
                    udpserverthread.start();
                } catch (Exception e) {
                    // TODO: handle exception
                    System.out.println("e.getMessage():" + e.getMessage());
                    Log.info("udp fail");
                    try {
                        sleep(5000);
                        new ISSIhttpserverThread().start();
                    } catch (InterruptedException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
                }
    
        }
    
        
    }
    UDPServerThread:
    public class UDPServerThread extends Thread {
    	DatagramPacket datagrampackets = null;
    
    
    	// int superport=1024;
    	public UDPServerThread(DatagramPacket packetd) {
    		this.datagrampackets = packetd;
    		Log.info("UDPServerThread");
    		Log.info("datagrampacket" + datagrampackets.getPort());
    
    	}
    
    	@Override
    	public void run() {
    		Log.info("ten");
    		
    		int ten = datagrampackets.getLength();
    		Log.info("ten" + ten);
    		if (ten > 0) {
    
    			String msg = new String(datagrampackets.getData(), 0,datagrampackets.getLength());
    			InetAddress ip = datagrampackets.getAddress();
    			int ports = datagrampackets.getPort();
    			Log.info("客户端" + ip + ports + "发来消息:" + msg);
    			Document document = null;
    			try {
    				document = DocumentHelper.parseText(msg);
    			} catch (DocumentException e1) {
    				// TODO Auto-generated catch block
    				e1.printStackTrace();
    			}// 转换document对象
    			Element root = document.getRootElement();
    			
    			//返回客户端消息
    			DatagramSocket sockets=null;
    			try {
    				sockets = new DatagramSocket();
    				byte[] buf = null;
    				buf = respxml.getBytes();
    				DatagramPacket packets = new DatagramPacket(buf, buf.length,
    						new InetSocketAddress(ip, ports));
    				sockets.send(packets);
    				sockets.close();
    			} catch (SocketException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    
    		}
    	}
    	
    
    }
    

      

     
  • 相关阅读:
    springboot项目启动成功后执行一段代码的两种方式
    ELK相关资料整理
    Golang指针解析
    Golang文件操作
    Go Channel介绍
    Go语言new和make的区别
    SpringBoot+AOP实现记录操作日志和异常日志,并保存到数据库
    【面试专栏】Java 阻塞队列
    Linux安装Jenkins并构建SpringBoot工程
    Linux安装git
  • 原文地址:https://www.cnblogs.com/ttqi/p/12204433.html
Copyright © 2011-2022 走看看