package BaoWen; import java.io.File; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import Frame.BaoWenHuiFang; import Frame.TcpIpManage; import Method.GetNowTime; import Method.PutPosInHistoryDataBase; import Method.SaveFIleInTxt; import PbuliClass.Systems; import ToolBarS.ToolBarModel; import home.Open_soft_dialog; import monitorGas.ReadGas; import tbDataModel_Dell.Dell_Ip; import tbDataModel_Dell.Tools; public class gas_udp_receive implements Runnable { static DatagramSocket socket; //ÓÐÊý¾ÝÉÏÀ´¾Í¸üÐÂÏÂʱ¼ä static String havedatatime=GetNowTime.now(); int port=Integer.parseInt(Systems.sys().getGas_port()); DatagramPacket packet; static int yq=0; /**³õʼ»¯¶ÔÏó * @throws NumberFormatException * @throws IOException */ public gas_udp_receive() throws NumberFormatException, IOException{ socket = new DatagramSocket(port); byte[] data = new byte[1024]; // ´´½¨byteÊý×é packet= new DatagramPacket(data, data.length); } /**Æô¶¯Ï̵߳ķ½·¨*/ public void startThread() { Thread t=new Thread(this); t.start(); Open_soft_dialog.addara("Æô¶¯UDP¶Ë¿Ú"+Systems.sys().getCs_udp()+"¼àÌý"); } public void run() { while(true) { try { socket.receive(packet); // ½ÓÊÕÊý¾Ý°ü int lenth=packet.getLength(); byte[] byt=subBytes(packet.getData(),0, lenth); //»ñÈ¡·¢ËͶ˵ÄIPµØÖ·¶ÔÏó String ip=packet.getAddress().getHostAddress(); int port=packet.getPort(); String datas=Tools.Bytes2HexString(byt); //Èç¹ûÔÝͣûÓÐÆô¶¯ if(ToolBarModel.isStartpos()) { Dell_Ip.insert(ip); boolean c=TcpIpManage.getStar(); boolean a=TcpIpManage.getDatatypeis().equals("ԭʼÊý¾Ý"); boolean b=TcpIpManage.get_xieyi_type().equals("2"); if(c && a && b ) { TcpIpManage.get_text_area().append("ÊÕ:"+ip+":"+port+"," +datas.toUpperCase()+","+GetNowTime.timestamp2()+"\n "); TcpIpManage.get_text_area().setCaretPosition(TcpIpManage.get_text_area().getText().length()); } //´¦ÀíԭʼÊý¾Ýº¯Êý if(!BaoWenHuiFang.isHuifangbaowen()) { //²åÈëԭʼÊý¾Ý½øÈëԭʼÊý¾Ý¼¯ºÏ if(datas.startsWith("0103")|| datas.startsWith("0203")|| datas.startsWith("0303") ) { //´¦ÀíÆøÌ屨ÎÄ /**´¦ÀíÆøÌåÊý¾Ý*/ ReadGas.dell_gas2_data(ip,datas); } Dell_55AA01.dell_gui(); //Èç¹û¿ªÆôÁ˱¨Îı£´æÔ­Ê¼±¨ÎĻطŠif(ToolBarModel.isSavebaowen() && (!BaoWenHuiFang.isHuifangbaowen())) { String time=GetNowTime.timestamp2(); PutPosInHistoryDataBase.insert_baowen(datas.toUpperCase(), ip,time); String messages=datas.toUpperCase()+","+ip+","+time; String name="./savefile/"+ToolBarModel.getBaowenname()+".txt"; File file4=new File(name); SaveFIleInTxt.save_in_txt(messages,file4,true); messages=null; } } } byt=null; datas=null; } catch (Exception e) { e.printStackTrace(); // Êä³öÒì³£ÐÅÏ¢ } } } public static byte[] subBytes(byte[] src, int begin, int count) { byte[] bs = new byte[count]; System.arraycopy(src, begin, bs, 0, count); return bs; } }