【问题标题】:Socket programming in Flash and AIR...two clients, one server. Listen on two ports or one?Flash 和 AIR 中的套接字编程......两个客户端,一个服务器。监听两个端口还是一个?
【发布时间】:2012-02-04 22:07:40
【问题描述】:

我有一台服务器将从两个客户端获取信息。这 3 台机器位于同一个本地网络上(连接到同一个集线器)。两个客户端都会不断地向服务器发送 x,y 信息。

我正在尝试找出哪种方法更好:

方法 A

服务器监听一个端口。客户端连接到同一个端口。我会尝试通过将客户端信息编码到数据中来区分数据。

方法 B

服务器监听两个端口。客户端 A 始终连接到第一个端口,客户端 B 始终连接到第二个端口。我会根据端口知道谁发送了什么。

【问题讨论】:

标签: flash actionscript-3 sockets air


【解决方案1】:

使用一个端口。当客户端连接时,它会获得自己的 Socket 实例,因此您始终知道从什么客户端接收数据。如果您有 2 个不同的客户端角色,请在连接客户端时使用一些简单的授权,例如“嘿!我是角色 A 的客户端!”。

【讨论】:

    【解决方案2】:

    方法 A:当客户端连接到套接字服务器时,让服务器返回一个 id 并递增它,因此两个客户端都有 id。然后,当您发送数据(x 和 y)时,同时发送 id。

    【讨论】:

    • 我同意方法 A 优于 B,但不需要客户端 ID。根据 valyard 的回答,服务器上通常有单独的套接字实例在同一端口上通信。这是由底层套接字系统管理的(请记住,客户端已经拥有唯一的 IP 来区分它们)。仅当您处理的连接太多以至于单个端口无法管理所有连接时,才应考虑方法 B。 ~64K 减去保留的端口。
    猜你喜欢
    • 2011-05-20
    • 2014-05-24
    • 1970-01-01
    • 2013-05-27
    • 2012-06-09
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多