我正在尝试实现多插件程序(客户端和服务器)。经过一番谷歌搜索,我发现做一个好主意是实现Runnable。现在我想我创建并使用.start()的每个线程都是一个不同的客户端(如果我错了,请纠正我。)
我觉得很难理解两件事:
- 接受数据的确切行是什么?我想这不是Server.accept()方法,因为这个方法用于启动与特定客户端的连接(通过创建前面提到的新线程)。
- 如何接受超过1个数据包(假设它是一个字符串)?
答案 0 :(得分:2)
稍作修正,您创建并以start()
开头的每个新线程都将成为处理新客户端的新服务器线程。
接受数据的确切行是哪一行?
要接受来自客户端的数据,您必须将客户端的输入流包装到某个输入流中,然后调用输入流的相应读取功能。
void readx(Socket con)
{
String line=new String();
BufferedReader bin= new BufferedReader(new InputStreamReader(con.getInputStream());
while((line = bin.readLine()) != null) //Read new lines coming from the server
System.out.println(line);
}
这只是一个示例,您可以使用其他InputStream包装器(如DataInputStream
)及其各自的读取功能。
我如何接受超过1个数据包(假设它是一个字符串)?
以上代码段将持续接受来自客户端的数据(可以是任意数量的行),直到客户端发送End of Stream字符。