javasocket接收响应16进制
时间: 2023-07-24 16:46:18 浏览: 52
要接收16进制响应,可以使用 Java 的 Socket 类和 InputStream 类。以下是一个简单的示例代码,可以接收16进制响应并将其转换为字符串:
```java
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
public class HexResponseReceiver {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("example.com", 80);
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int readBytes;
StringBuilder hexResponse = new StringBuilder();
// 读取响应数据
while ((readBytes = inputStream.read(buffer)) != -1) {
// 将字节转换为16进制字符串
for (int i = 0; i < readBytes; i++) {
hexResponse.append(String.format("%02X", buffer[i]));
}
}
// 将16进制字符串转换为普通字符串
String response = hexStringToString(hexResponse.toString());
System.out.println(response);
socket.close();
}
// 将16进制字符串转换为普通字符串
public static String hexStringToString(String hex) {
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i += 2) {
String str = hex.substring(i, i + 2);
output.append((char) Integer.parseInt(str, 16));
}
return output.toString();
}
}
```
在上面的代码中,我们首先创建一个 Socket 对象,并获取它的 InputStream 对象。然后,我们循环读取响应数据,并将每个字节转换为16进制字符串。接下来,我们将16进制字符串转换为普通字符串,并将其打印到控制台上。最后,我们关闭了 Socket 对象。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)