0

我有一个 Swing 客户端,它有一个连接和取消按钮,因此它可以尝试连接到服务器或结束当前连接。我正在尝试使客户端可以连接到服务器,结束连接,然后再次连接到服务器多次。

我的理解是,通常当客户端和服务器结束连接时,无论是谁结束它,客户端都会关闭其流和套接字。显然,它们不能被重用于另一个连接尝试。现在我有 Socket 和流变量作为私有实例变量和一个连接到服务器的方法,它创建一个新的套接字,然后是打开和关闭流的方法。

只是想知道通常如何处理这样的事情。我曾想过使用一种巨大的方法来创建新的套接字、流并处理所有通信以及流和套接字的关闭,但这似乎很混乱。或者也许让一个新线程创建所有内容,然后在通信结束时终止线程。

想法赞赏。

4

3 回答 3

1

-当客户端连接到服务器时,在服务器端创建一个单独的线程。

-为该特定客户端执行读取和写入特定线程的过程。client socket

-然后在完成后终止客户端线程

-如果您再次尝试连接它,将跨越一个新线程。

-您始终可以创建一个HashMap以保持客户端-套接字与线程关系的标签。

于 2012-11-10T11:50:37.267 回答
0

您应该将所有“逻辑”放在一个不同于 GUI 的新类中。然后因为你有 2 个按钮,你的 Gui 类应该能够在逻辑类上调用至少 2 个方法:connect()disconnect(). 然后在这些方法中,您可以处理连接到服务器、打开/关闭流等所需的所有工作......

如果您计划添加功能,这将使您的代码更清晰、更易于维护,并且可能更具发展性。

于 2012-11-10T11:44:58.273 回答
0

我宁愿为每个套接字创建创建一个线程,并使用该线程处理请求和响应。

于 2012-11-10T11:45:25.637 回答