package BaoWen; import java.io.File; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import Frame.BaoWenHuiFang; import Frame.S2Manage; import Frame.TcpIpManage; import Frame.WifiMange; import Method.BaoWenShow; import Method.GetNowTime; import Method.PutPosInHistoryDataBase; import Method.SaveFIleInTxt; import PbuliClass.ShowMessage; import PbuliClass.Systems; import ToolBarS.ToolBarModel; import anchor.Anchor; import engbs.Bs_look_baowen; import home.Open_soft_dialog; import tbDataModel_Dell.DellS2; import tbDataModel_Dell.Dell_Ip; import tbDataModel_Dell.Dell_Wifi; import tbDataModel_Dell.Tools; /**¸ÃÀàÓÃÓÚ½ÓÊÕUDP±¨ÎÄ*/ public class Udp_Receive implements Runnable { static DatagramSocket socket; int port=8234; DatagramPacket packet; boolean G4=false; static int yq=0; static int bytlenth=1024; static int udpbaowenmun=1; static String datas; /**³õʼ»¯¶ÔÏó * @throws NumberFormatException * @throws IOException */ public Udp_Receive() { if(Systems.sys().getBaoliu1() !=null) { String port1=Systems.sys().getBaoliu1(); port=Integer.parseInt(port1); if(Systems.isAncshengjimoshi()) {//Èç²»ÊÇ»ùÕ¾Éý¼¶Ä£Ê½ port=8888; } }else { ShowMessage.zidingyi("UDP½ÓÊÕ¶Ë¿ÚΪnull"); } try { socket = new DatagramSocket(port); } catch (SocketException e) { ShowMessage.zidingyi_24("°ó¶¨¶Ë¿Ú"+port+"ʧ°Ü"); } byte[] data = new byte[bytlenth]; // ´´½¨byteÊý×é packet= new DatagramPacket(data,bytlenth); } /**Æô¶¯Ï̵߳ķ½·¨*/ public void startThread() { Thread t=new Thread(this); t.start(); Open_soft_dialog.addara("Æô¶¯"+port+"¶Ë¿Ú¼àÌý"); } public void run() { while(true) { getdata(); } } /**»ñÈ¡Êý¾Ý*/ public void getdata() { if(socket !=null) { try { socket.receive(packet); // ½ÓÊÕÊý¾Ý°ü udpbaowenmun++; if(ToolBarModel.isStartpos()) {//Èç¹ûÔÝͣûÓÐÆô¶¯ delludp_receive(packet); } if(udpbaowenmun==5000000) {//Èç¹ûÊý¾ÝµÈÓÚ500ÍòÌõÉèÖÃΪ1 udpbaowenmun=1; } } catch (Exception e) { e.printStackTrace(); // Êä³öÒì³£ÐÅÏ¢ } } } /**yang2023.07.08*/ public static void delludp_receive(DatagramPacket packet) { int lenth=packet.getLength(); byte[] byt=subBytes(packet.getData(),0, lenth); String ip=packet.getAddress().getHostAddress();//»ñÈ¡·¢ËͶ˵ÄIPµØÖ·¶ÔÏó int port=packet.getPort(); if(TcpIpManage.isAsclljx()) {//20230709yang datas=new String(packet.getData(), 0, lenth);//½âÎöASCLL¸ñʽÊý¾Ý,ÐèÒª±¨ÎÄ²é¿´Ò³Ãæ¹´Ñ¡ }else { datas=Tools.Bytes2HexString(byt);//½âÎöHEX¸ñʽÊý¾Ý } String upinfo=datas.toUpperCase(); DellMessage.save_log(upinfo);//Èç¹ûJNA¿ªÆô±£´æÔ­Ê¼Êý¾Ýyang20230725 Bs_look_baowen.insert_all(upinfo,"ËùÓбêÇ©");//BS¶Ë²é¿´±¨ÎÄ Dell_55AA01.dell_gui(); Dell_Ip.insert(ip); boolean c=TcpIpManage.getStar(); boolean b=TcpIpManage.get_xieyi_type().equals("2"); if(c) { BaoWenShow.show2(datas, "UDP¶Ë¿Ú", ip, port); if(b) { BaoWenShow.show2(datas, "ԭʼÊý¾Ý", ip, port); } } if(!BaoWenHuiFang.isHuifangbaowen()) {//´¦ÀíԭʼÊý¾Ýº¯Êý //²åÈëԭʼÊý¾Ý½øÈëԭʼÊý¾Ý¼¯ºÏ if(port==1500) { dell_serchanchor(upinfo,ip,port,lenth, packet); }else { String time = GetNowTime.timestamp2(); if (upinfo.startsWith("55AA0C")) { Dell_baowen_55AA0C.intsert(ip,upinfo,time,port); }else{ Dell_Baowen.intsert(ip, upinfo,time, port); } } //Èç¹û¿ªÆôÁ˱¨Îı£´æÔ­Ê¼±¨ÎĻطŠif(ToolBarModel.isSavebaowen() && (!BaoWenHuiFang.isHuifangbaowen())) { String time=GetNowTime.timestamp2(); PutPosInHistoryDataBase.insert_baowen(upinfo, ip,time); String messages=upinfo+","+ip+","+time; String name="./savefile/"+ToolBarModel.getBaowenname()+".txt"; File file4=new File(name); SaveFIleInTxt.save_in_txt(messages,file4,true); messages=null; } } byt=null; } public static DatagramSocket getSocket() { return socket; } public static byte[] subBytes(byte[] src, int begin, int count) { byte[] bs = new byte[count]; System.arraycopy(src, begin, bs, 0, count); return bs; } public static int getYq() { return yq; } /**½«Êý¾Ý·¢¸ø»ùÕ¾*/ public static void out(byte[] data,int length,Anchor anchor,String datafrom) { if(socket==null) { return; } if(anchor==null) { BaoWenShow.ok("2", "TOANC","anchor=null", "",datafrom); return; } String ip=anchor.getAnc_ip(); int port=anchor.getPort(); if(port<800) { port=8233; } String anchorid=anchor.getAnc_id(); String datas1=Tools.Bytes2HexString(data); if(ip==null) { datas1=anchorid+"»ùվûÓмì²âµ½IP...\n"; BaoWenShow.ok("2", "TOANC",datas1, "",datafrom); }else if(ip.length()<4 || port ==0){ datas1=anchorid+"erro:»ùÕ¾"+anchorid+"µØÖ·"+ip+"¶Ë¿Ú"+port; BaoWenShow.ok("2", "TOANC",datas1, "",datafrom); return; } DatagramPacket packet=null; InetAddress address=null; //Èç¹ûÊý¾ÝÀàÐÍÏàͬ try { address=InetAddress.getByName(ip); } catch (UnknownHostException e) { e.printStackTrace(); } packet=new DatagramPacket(data, length, address, port); try { socket.send(packet); String datas=Tools.Bytes2HexString(data).substring(0, packet.getLength()*2); BaoWenShow.ok("2", "TOANC",datas, "",datafrom); } catch (IOException e) { e.printStackTrace(); } } /**ʵÏÖUDPת·¢ * @param data ÐèҪת·¢µÄÊý¾Ý * @param lenthÐèҪת·¢µÄÊý¾Ý³¤¶È * @param ipת·¢µØÖ· * @param ports¶Ë¿Ú * @throws IOException */ public static void udp_serch(byte[] data,int length,String ip,String ports) { InetAddress address=null; int port=Integer.parseInt(ports); try { address=InetAddress.getByName(ip); } catch (UnknownHostException e) { ShowMessage.zidingyi_24("UDPδ֪µØÖ·Òì³£:"+ip); } DatagramPacket packet=new DatagramPacket(data, length, address, port); try { socket.send(packet); String datastr=Tools.Bytes2HexString(data); S2Manage.get_text_area().append("·¢£º"+ip+":"+port+","+datastr+","+GetNowTime.now()+"\n"); } catch (IOException e) { e.printStackTrace(); } } static public void dell_serchanchor(String datas,String ip2,int port,int lenth,DatagramPacket packet) { if(Dell_Wifi.isDellwifi()) { String datastr=new String(packet.getData(), 0, lenth); if(datastr.equals("+ok")) { datastr=datastr.replace("+ok", "³É¹¦£¡"); } WifiMange.get_text_area().append("ÊÕ:"+ip2+":"+port+","+datastr+"\n"); WifiMange.get_text_area().setCaretPosition(WifiMange.get_text_area().getText().length()); Dell_Wifi.dell_message(datastr); }else { S2Manage.get_text_area().append("ÊÕ:"+ip2+":"+port+","+datas+"\n"); S2Manage.get_text_area().setCaretPosition(S2Manage.get_text_area().getText().length()); if(datas.startsWith("FF24")) { DellS2.serch_fanhui(datas); }else if(datas.equals("FF01024B")){ ShowMessage.zidingyi("ÖØÆôÉ豸³É¹¦"); }else if(datas.equals("FF010250")){ ShowMessage.zidingyi("ÖØÆôÉ豸Óû§ÃûÃÜÂë´íÎó"); }else if(datas.equals("FF010550")){ ShowMessage.zidingyi("»ù´¡²ÎÊýÉèÖÃÓû§ÃûÃÜÂë´íÎó"); }else if(datas.equals("FF010650")){ ShowMessage.zidingyi("ÖØÆôÉ豸Óû§ÃûÃÜÂë´íÎó"); }else if(datas.equals("FF01064B")){ ShowMessage.zidingyi("±£´æ³É¹¦£¡"); }else{ DellS2.dell_readpeiz(datas); } } } /**½«Êý¾Ý·¢¸ø»ùÕ¾±äµçվģʽ*/ public static void biandianzout(byte[] data,int length,String ip) { DatagramPacket packet=null; InetAddress address=null; //Èç¹ûÊý¾ÝÀàÐÍÏàͬ try { address=InetAddress.getByName(ip); } catch (UnknownHostException e) { e.printStackTrace(); } packet=new DatagramPacket(data, length, address, 8233); try { socket.send(packet); String datas=Tools.Bytes2HexString(data).substring(0, packet.getLength()*2); BaoWenShow.show(datas, "UDPת·¢","Ñ¡Ôñ±êÇ©"); } catch (IOException e) { e.printStackTrace(); } } /** * ½ÓÊÕÊý¾Ý°ü * @param ds Á¬½Ó * @return Êý¾Ý°ü * @throws IOException */ public static int getRecDat() throws IOException { byte[] dat = new byte[1]; DatagramPacket dp = new DatagramPacket(dat, 1); socket.receive(dp); return dat[0] & 0xff; } public static int getUdpbaowenmun() { return udpbaowenmun; } }