gpt4 book ai didi

java - 基本多 socket 程序

转载 作者:行者123 更新时间:2023-12-02 08:03:57 25 4
gpt4 key购买 nike

我正在尝试实现一个多套接字程序(客户端和服务器)。经过一番谷歌搜索后,我发现实现 Runnable 是一个好主意。现在我假设我创建和使用 .start() 的每个线程都是不同的客户端(如果我错了,请纠正我)。

我发现困难的是理解两件事:

-接受数据的具体行是哪一行?我猜这不是 Server.accept() 方法,因为该方法用于启动与特定客户端的连接(通过创建一个新线程,如前所述)。

-我怎样才能接受超过 1 个数据包(假设它是一个字符串)?

最佳答案

稍微修正一下,您创建并使用 start() 启动的每个新线程都将是处理新客户端的新服务器线程。

Which is the exact line that accepts data?

要接受来自客户端的数据,您必须将客户端的输入流包装到某个输入流中,然后调用输入流各自的读取函数。

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 及其各自的读取函数。

How can I accept more than 1 packet (let's say it's a string)?

上面的代码片段将持续接受来自客户端的数据(可以是任意行数),直到客户端发送一个流结束字符。

关于java - 基本多 socket 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com