Java UDP的android studio字节[]是冗余的

Java UDP的android studio字节[]是冗余的,java,android,Java,Android,我只想通过单击按钮,使用UDP将数据发送到另一个设备(PC)。所以我为它做了一个方法,在其中我放入UDP代码,并在单击按钮时建立一个关系。但是根据IDE,包含我想要发送的字符串数据的字节没有被很好地创建 代码如下: String argv = "WhatISend"; int port = 9268; byte[] buffer= new byte[argv.lenght()]; try { InetAddress server = InetAddress.getByName("1

我只想通过单击按钮,使用UDP将数据发送到另一个设备(PC)。所以我为它做了一个方法,在其中我放入UDP代码,并在单击按钮时建立一个关系。但是根据IDE,包含我想要发送的字符串数据的字节没有被很好地创建

代码如下:

String argv = "WhatISend";
int port = 9268;
byte[] buffer= new byte[argv.lenght()];


try {

    InetAddress server = InetAddress.getByName("172.16.19.14");
    buffer = argv.getBytes();
    DatagramSocket socket = new DatagramSocket();
    DatagramPacket udp_emission = new DatagramPacket(buffer, buffer.length, server, port);
    socket.send(udp_emission);
    socket.close();
} catch (Exception e) {
    System.out.println("Fail socket");
}

问题在于“byte[]buffer=new byte[size];”

根据您问题的措辞,听起来您希望
buffer
包含原始字符串的字符。但是,
字节
数组实际上不包含字符串数据。您向我们展示的代码只是创建了一个与输入字符串长度相同的
字节
数组。您尚未将单个字符分配给
缓冲区

您可能想要的是:

buffer = argv.getBytes();

有关更多信息,请参阅。

什么问题不是很好地创建了“怎么做?”我得到了“变量“缓冲区”初始值设定项新字节[argv.length()]”是冗余的“我在代码中完成了这项工作,但我得到了“变量“缓冲区”初始值设定项新字节[argv.length()]”是冗余的“@user4791873是的。它是多余的,因为
argv.getBytes()
都为您创建和分配字节数组。因此,在调用
argv.getBytes()
之前,不必初始化
缓冲区。否则,您将首先创建一个空白数组,然后在调用
argv.getBytes()
时将其丢弃并替换为一个新数组@user4791873这对你有用吗?如果是的话,你能接受这个答案吗?