java socket通信传输list
时间: 2023-10-10 08:14:20 浏览: 158
Java的Socket通信可以传输任何可序列化的对象,包括List。
传输List需要注意以下几点:
1. List中的元素也必须是可序列化的对象。
2. 在发送端将List转换为字节数组,然后发送字节数组;在接收端接收字节数组,然后将字节数组转换为List。
以下是一个简单的例子,演示如何在Java Socket通信中传输List:
发送端代码:
```java
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream objOut = new ObjectOutputStream(out);
objOut.writeObject(list);
objOut.flush();
byte[] bytes = out.toByteArray();
OutputStream os = socket.getOutputStream();
os.write(bytes);
os.flush();
```
接收端代码:
```java
InputStream is = socket.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) > -1) {
baos.write(buffer, 0, len);
}
baos.flush();
byte[] bytes = baos.toByteArray();
ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(bytes));
List<String> list = (List<String>) objIn.readObject();
```
阅读全文