2012-06-03 242 views
-1

我正在使用Java自己的服务器。我需要做一个套接字连接并从客户端接收很多对象。我做到了,它有效,但我不知道这是否是最好的(最快)解决方案。这里是例子我的代码:服务器连接

try { 
    serverSocket=new ServerSocket(18234, 1000); 
} catch (IOException e) { 
    System.out.print("Server failed.."); 
    e.printStackTrace(); 
} 

Object x; 
ObjectInputStream ois; 
System.out.println("Waiting for connection..."); 
Socket connection= serverSocket.accept(); 
System.out.println("Connection received from " + connection.getInetAddress().getHostName()); 

while(true){ 
    ois = new ObjectInputStream(connection.getInputStream()); 
    x=ois.readObject(); 
    System.out.println(x.getString()); 
    if(x.getString().equals("END")) break; 
} 

问题是,当我尝试接受新的对象,所有的时间我必须做新的ObjectInputStream的..是这个解决方案是否正确?我必须做非常快的服务器,并且在我看来,所有时间都在做新的ObjectInputStream太贵了。

+0

了解如何使用vert.x编写服务器。为什么写自己的? – duffymo

+0

*“问题是,当我尝试接收新对象时,所有时间都必须执行新的ObjectInputStream”*,但是为什么您必须在每次迭代中创建一个新对象,为什么不能有一个对象呢? –

+0

因为如果我不这样做我得到异常:java.io.StreamCorruptedException:无效的类型代码:AC – user1247373

回答

0

在两端使用相同的ObjectOutputStream和ObjectInputStream来实现套接字的生命周期。你关于被迫使用一个新对象的陈述是不正确的。