【问题标题】:java client-server app - unable to create multiple clientsjava客户端-服务器应用程序 - 无法创建多个客户端
【发布时间】:2012-09-11 06:17:17
【问题描述】:

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

我对节目的理解:

client.java(有一个socket和一个服务器socket)

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

serversocket - 用于与其他对等方通信,此编号应为其他对等方所知。


server.java

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


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

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

请帮帮我!

【问题讨论】:

  • 你的标题是什么意思?

标签: java sockets tcp network-programming


【解决方案1】:

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

另外我相信你必须传递客户端端口和 ip 才能让客户端相互通信,除非你的所有客户端都在同一台机器上。

【讨论】:

  • 我在本地主机上做。我必须在客户端程序中同时使用套接字和服务器套接字吗?我不能只有一个 serversocket 吗?
  • 如果您希望每个客户端相互通信,并且所有客户端都在同一台机器或不同机器上,那么您可以避免客户端上的服务器套接字。为此,您必须在服务器中实现将数据从一个客户端传递到另一个客户端的逻辑。
  • no..client 与另一个客户端交谈应该是点对点的。服务器不应调节。服务器只将节点的端口号提供给请求节点。
猜你喜欢
  • 2022-06-16
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
相关资源
最近更新 更多