Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';t在java中将接收到的UDP数据包转换为int_Java_String_Int_Udp_Byte - Fatal编程技术网

can';t在java中将接收到的UDP数据包转换为int

can';t在java中将接收到的UDP数据包转换为int,java,string,int,udp,byte,Java,String,Int,Udp,Byte,我编写了一个使用UDP协议发送和接收数据包的代码。当我收到int,并且我确定它是一个数字时,我无法将它从字节[](接收数据包的类型)转换为int。我试图将它从byte[]转换为String,从String转换为int,但同样的问题是,我得到了异常“NumberFormatException”。我要转换的代码是: String newtext = new String (receivePacket.getData()); System.out.println("I receive "+ n

我编写了一个使用UDP协议发送和接收数据包的代码。当我收到
int
,并且我确定它是一个数字时,我无法将它从
字节[]
(接收数据包的类型)转换为
int
。我试图将它从
byte[]
转换为
String
,从
String
转换为
int
,但同样的问题是,我得到了异常“NumberFormatException”。我要转换的代码是:

  String newtext = new String (receivePacket.getData());
  System.out.println("I receive "+ newtext );
  int location = Integer.parseInt(newtext);
控制台中显示的输出是一个数字,但代码不能视为数字。任何解决问题的建议

代码看不到数字

作为问题描述,这是完全没有意义的;但问题在于:

String newtext = new String (receivePacket.getData());
这应该是:

String newtext = new String (receivePacket.getData(),receivePacket.getOffset(),receivePacket.getLength());
但是,您的描述非常模糊,您可能正在接收二进制的
int
,在这种情况下,您需要以下内容:

int location = new DataInputStream((receivePacket.getData(),receivePacket.getOffset(),receivePacket.getLength()).readInt();

或者可能
readShort()

使用以下步骤解决问题: 1.在使用此post发送数据包之前,输入的
int
被转换为
字节[4]

  • 使用此帖子将其从
    字节[4]
    转换回
    int

  • 感谢您试图帮助我,希望这能帮助那些面临同样问题的人。

    感谢您的回复,并对解释中的含糊不清表示抱歉。你的建议并不能解决我的问题,但我想我对我的问题了解得更多,那就是当我使用不同的转换方法时,整个
    字节[1024]
    都会被转换,而不仅仅是
    int
    ,它是数组的开始。@EJP,正确描述的问题和我发布的代码是问题的一部分。