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

      

     
  • 相关阅读:
    STM32的GPIO工作原理 | 附电路图详细分析
    话说上拉电阻和下拉电阻
    Linux下MySQL数据库常用基本操作
    Linux acpi off学习的必要
    CentOS 6.2出现Disk sda contains BIOS RAID metadata解决方法
    降低开关电源纹波的三个要素
    什么是RFID? 射频识别技术的特点及工作原理!
    亲测可用的国内maven镜像
    Linux 删除文件夹和文件的命令
    [Gradle] 在 Eclipse 下利用 gradle 构建系统
  • 原文地址:https://www.cnblogs.com/ttqi/p/12204433.html
Copyright © 2020-2023  润新知