java socket传送和接受byte[]
时间: 2023-12-07 10:02:29 浏览: 56
要传输和接收byte[]数组,可以使用Java的Socket和InputStream, OutputStream类。
发送方代码:
```java
Socket socket = new Socket("目标IP地址", 目标端口号);
byte[] bytes = new byte[] {1, 2, 3, 4, 5};
OutputStream outputStream = socket.getOutputStream();
outputStream.write(bytes);
outputStream.flush();
socket.close();
```
接收方代码:
```java
ServerSocket serverSocket = new ServerSocket(目标端口号);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
byte[] bytes = outputStream.toByteArray();
socket.close();
serverSocket.close();
```
注意事项:
- 在发送方,需要调用OutputStream的flush()方法确保数据被发送。
- 在接收方,需要使用缓冲区来读取数据,否则可能会出现数据不完整的问题。
- 在接收方,需要将读取到的数据流写入到ByteArrayOutputStream中,再通过toByteArray()方法转换为byte[]数组。
- 在使用Socket传输数据时,需要注意网络环境和数据大小等因素可能会影响传输效果。