Java中的多客户端套接字?

Java中的多客户端套接字?,java,sockets,client,Java,Sockets,Client,很快,我将完成一个单客户端聊天系统作为一个娱乐性的个人项目,我想知道。。。将这样的东西转换为具有多个客户机是简单的,还是需要大量重写 不管是哪种情况,你都会怎么做?请描述一下!:D 谢谢 另外,如何通过套接字传输文件?如果您正在考虑编写IM系统,那么我建议您使用更高级别的软件。通过套接字传输文件。将一个客户端转换为多个客户端可能很简单。这取决于您是如何编写应用程序的。由于您正在重写一个以前编写过很多次的应用程序,因此我假设您不怕重写代码,并且您正在将其作为一个学习练习 最简单的更改是,如果现在接

很快,我将完成一个单客户端聊天系统作为一个娱乐性的个人项目,我想知道。。。将这样的东西转换为具有多个客户机是简单的,还是需要大量重写

不管是哪种情况,你都会怎么做?请描述一下!:D 谢谢


另外,如何通过套接字传输文件?

如果您正在考虑编写IM系统,那么我建议您使用更高级别的软件。通过套接字传输文件。

将一个客户端转换为多个客户端可能很简单。这取决于您是如何编写应用程序的。由于您正在重写一个以前编写过很多次的应用程序,因此我假设您不怕重写代码,并且您正在将其作为一个学习练习

最简单的更改是,如果现在接受一个客户机,那么应该使用循环来接受多个客户机。(并将该客户端的处理传递给另一个线程)


要通过套接字传输文件,您需要能够像现在这样连接到服务器,读取文件并将内容发送到服务器。与其将文字聊天信息传递给接收者,不如传递一条包含文件内容的文件信息。

虽然这样做可能更好,但我只是尝试使用低级套接字。文件传输示例非常有用。谢谢!所以,为了实现多客户机,我有一个线程来接受客户机,另一个线程来处理通信?这是否意味着我可以只使用普通线程进行通信,而另一个线程用于接受客户端,或者我必须实例化两个线程?每个连接可以使用两个线程,但对于聊天,您只需要一个。另外,在执行
接受()
时,如何停止其中一个线程,即客户端接受线程?我不能让
while
循环有一个条件,因为它会一直等到有了连接。我必须伪造连接才能退出线程吗?当你关闭ServerSocket时,任何等待accept的线程都会抛出一个IOException来指示它已经关闭。