java – 使用套接字通过TCP从服务器端向客户端发送ArrayList?
发布时间:2020-05-24 23:08:37 所属栏目:Java 来源:互联网
导读:我正在尝试通过TCP将一个对象从服务器端套接字发送到客户端套接字.我无法找出问题所在. 这是我在客户端遇到的错误: java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280) at java.io.ObjectInputStre
|
我正在尝试通过TCP将一个对象从服务器端套接字发送到客户端套接字.我无法找出问题所在. 这是我在客户端遇到的错误: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at ClientSide.main(ClientSide.java:16)
服务器端代码: import java.io.*;
import java.net.*;
import java.util.ArrayList;
public class ServerSide {
public static void main(String[] args) {
try
{
ServerSocket myServerSocket = new ServerSocket(9999);
Socket skt = myServerSocket.accept();
ArrayList<String> my = new ArrayList<String>();
my.set(0,"Bernard");
my.set(1,"Grey");
try
{
ObjectOutputStream objectOutput = new ObjectOutputStream(skt.getOutputStream());
objectOutput.writeObject(my);
}
catch (IOException e)
{
e.printStackTrace();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
客户端代码: import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
public class ClientSide {
public static void main(String[] args)
{
try {
Socket socket = new Socket("10.1.1.2",9999);
ArrayList<String> titleList = new ArrayList<String>();
try {
ObjectInputStream objectInput = new ObjectInputStream(socket.getInputStream()); //Error Line!
try {
Object object = objectInput.readObject();
titleList = (ArrayList<String>) object;
System.out.println(titleList.get(1));
} catch (ClassNotFoundException e) {
System.out.println("The title list has not come from the server");
e.printStackTrace();
}
} catch (IOException e) {
System.out.println("The socket for reading the object has problem");
e.printStackTrace();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
解决方法从set更改为add可以解决问题ArrayList<String> my = new ArrayList<String>();
my.add("Bernard");
my.add("Grey");
PS.根据其他人的建议,这不是一个好主意,但仅用于学习 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 使用从Kotlin数据类生成的代码时出现“不兼容类型
- java – 为什么Thread类中的setName分配给一个字
- Java从PNG到JPG的转换将白色变为红色
- 详解 Java Maximum redirects (100) exceeded
- java – ResultSet关闭后不允许操作
- java – Liferay api / jsonws页面只能供管理员用
- java-ee – 为什么无状态bean被视为伪范围并且不
- java – 在Netbeans中使用try-with-resources
- Java8 新特性Lambda表达式实例详解
- 使用JUnit 4在Gradle Scala单元测试中进行神奇的
热点阅读
