当前位置:编程学习 > JAVA >>

网络画板,传送一个“储存点的点向量”遇到问题

客户端链接服务器代码:
 

private void connectToServer() {
  try {
      // Create a socket to connect to the server
  Socket socket=null;
  if (isStandAlone)
  socket = new Socket(IP, port);
      else
  socket = new Socket(getCodeBase().getHost(), port);
  toServer = new ObjectOutputStream(socket.getOutputStream());
  }
  catch (Exception ex) {
    System.err.println(ex);
  }
}


客户端发送点向量代码:

private void sendPointVector(Vector<Point>  v )  throws  IOException {
      toServer.writeObject(v);
      System.out.println("传点向量中。。。。");
}



服务器端连接客户端代码:
private void connectToClient() {
  try {
  ServerSocket S_socket=null;
  S_socket = new ServerSocket(port);
  Socket socket = S_socket.accept();
  System.out.println("客户端到服务器的链接已建立");
  fromServer = new ObjectInputStream(socket.getInputStream());
  System.out.println("fromeServer输入流已经建立");
  }
  catch (Exception ex) {
    System.err.println(ex);
  }
     }


服务器端接收点向量方法:
public void getClientPointVector() throws IOException {
      System.out.println("正在接受客户端发来的数据。。。。");
      Vector<Point> Vec = new Vector<Point>();//点信息向量组
try {
if(VectorClass.isInstance(fromServer.readObject()))
{
    Vector<Point> readObject = (Vector<Point>)fromServer.readObject();
Vec=readObject;
    paintInfo=Vec;
    System.out.println("收到了"+paintInfo.size()+"个点");
    repaint();
    
}
else 
System.out.println("接收的数据格式错误!");
    } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


Point是我自己写的,implements了序列化接口 --------------------编程问答-------------------- 问题就是我客户端传输的时候,可以在console里看到我的paintInfo(存点的向量)的size不断在变化。
但是在服务器端,Vec始终没有变化 --------------------编程问答-------------------- 我传Point,一个一个的Point传输的时候是可以的。 --------------------编程问答-------------------- 求助啊...求助 --------------------编程问答-------------------- 好深奥啊。学习中。。。。。。。 --------------------编程问答-------------------- 服务器端每次都是重新赋值了一个List<Vector>
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,