break;
}
client.close();
}catch(IOExceptionex){
}finally{
}
}
publicstaticvoiDMAin(String[]args)throwsIOException{
ServerSocketserver=newServerSocket(5678);
while(true){
//transferLOCationchangeSingleUserorMultiUser
MultiUsermu=newMultiUser(server.accept());
mu.start();
}
}
}
我的类直接从Thread类继承了下来.并且通过构造函数传递引用和客户Socket建立了联系,这样每个线程就有了。一个通讯管道.同样我们可以填写run方法,把之前的操作交给线程来完成,这样多客户并行的Socket就建立起来了。
以上的代码使用的是
BufferedReaderin=newBufferedReader(newInputStreamReader(client.getInputStream()));
PrintWriterout=newPrintWriter(client.getOutputStream());
还有一种方法是使用
DataInputStreamisFromClient=newDataInputStream(client.getInputStream());
DataOutputStreamosToClient=newDataOutputStream(client.getOutputStream());
关于这两种输入输出流的不同,我也只知道前一种对字符串支持比较好,后面对于读取一个字符串需要处理,但是可以支持很多种类型的输出。对于传递字符串而言前一种应该是很好的选择了