java - UDP 套接字编程(提取数据,将其存储在字符串中)

标签 java sockets tcp network-programming udp

我正在学习使用 Java 进行 TCP 和 UDP 套接字编程,我正在为我的网络类(class)阅读的其中一本书有以下行:

DatagramPacket receivedPacket = new DatagramPacket(receiveData, receiveData.length);

String modifiedSentence = new String(receivedPacket.getData());

其中 receivedPacked 只是一个 DatagramPacket 类型的对象,而 modifiedSentence 存储从服务器返回的内容。在这种情况下,ReceivedPacket.getData() 在存储之前将数据包从字节转换为字符串。

我的问题是为什么要创建一个字符串对象并将转换后的数据包存储/传递给它而不是使用以下内容:

String modifiedSentence = receivedPacket.getData();

这行不通吗?我认为在 Java 中专门创建一个 String 类的对象是不切实际的。

最佳答案

DatagramPacket.getData() 返回字节数组而不是字符串。因此,您需要将其转换为字符串以将其分配给字符串。

关于java - UDP 套接字编程(提取数据,将其存储在字符串中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968492/

相关文章:

java - 在java中通过套接字流接收错误的字节值

Python套接字窃取对方的数据包

c++ - 如何正确转换也是不同数据类型的各种(已知)长度数据包的流?

java - 在Java中传递对象并尝试以多种方式更改它们

创建hibernate配置时出现java.lang.ExceptionInInitializerError

ios - Objective-C : Post/Get Request using Socket

php - 使用 PHP 扩展 IPv6 地址的快速方法

sockets - Node.js TCP 输入缓冲

Java For() 循环初始值错误,最终停止点错误

java - 无法从 java cocos2dx 调用 c++ 函数