0

我正在创建一个多线程应用程序,其中服务器应同时处理多个客户端请求。此外,客户端应该与其他客户端通信。服务器将保存各种客户端的端口地址,因此每个客户端都必须联系服务器以了解其对等方的端口地址。

我对程序的理解:

client.java(有一个套接字和一个服务器套接字)

socket - 用于与服务器交谈以注册其 serversocket 编号,这将有助于其他对等方进行识别。(注意:与服务器套接字不同,我们可能不得不在创建时提及端口,套接字# 由操作系统唯一分配,因此我们无需担心这一点。)

serversocket - 用于与其他对等方交谈,其他对等方应该知道此号码。


服务器.java

serversocket - 用于与各种客户端通信


现在,我有两个程序 server.java 和 client.java。当然,为了拥有多个客户端,我会多次运行 client.java。以下是我的问题:

我的 client.java 会有两个端口吗?一个套接字与服务器对话,一个服务器套接字监听其他客户端?如果是这样,我应该将端口号作为参数传递给 client.java 以便它可以用作每个客户端实例的唯一服务器套接字#?

请帮帮我!

4

1 回答 1

0

是的,您可以将它们作为运行时参数传递,或者更好地让服务器为您决定它,这样您就不必担心分配唯一的端口号。

此外,我相信您必须通过客户端端口和 ip 才能让客户端相互交谈,除非您的所有客户端都在同一台机器上。

于 2012-09-18T23:01:51.787 回答