【问题标题】:Sending files with java and ports使用 java 和端口发送文件
【发布时间】:2012-08-22 00:27:11
【问题描述】:

我正在阅读这个问题的答案: How to transfer files from one computer to another over the network using Java?

我不明白 jjnguy 的部分回答。 LISTENING_PORT 应该是什么?你如何决定使用哪个端口?什么是 CONNECTION_ADDRESS?

我知道这些都是非常基本的网络问题,所以也许有人可以为我指明一个好的教程的方向?

【问题讨论】:

    标签: java networking


    【解决方案1】:

    Socket 调用具有此签名

    公共套接字(字符串主机,int 端口)

    See documentation

    CONNECTION_ADDRESS 是(可能)四无符号字节形式的字符串(对于 IPV4),即 192.168.0.2

    LISTENING_PORT 可以是 0 到 65535 之间的任何数字,尽管数字

    这是一个例子:

    如果你把它放在你的浏览器地址栏中:74.125.132.94:80 你应该会看到 google。

    请注意,在这种情况下,它是 CONNECTION_ADDRESS:LISTENING_PORT(有一个分隔符:)

    这表示在端口 80 (HTTP) 上连接到 74.125.132.94

    基本上每台机器都有一个 IP 地址 (CONNECTION_ADDRESS),您正在创建的应用程序将侦听特定的 LISTENING_PORT。根据您的应用程序正在执行的操作,您可以分配适当的 IANA 服务端口或高于 IANA 范围的任意端口号,因此...

    例如,如果您正在创建一个 Web 服务器应用程序,那么您可以将应用程序设置为侦听端口 80,因为这是标准的 HTTP Web 端口

    假设您正在创建一个随机游戏应用程序,为您的游戏中的人提供服务,您只需选择一个大于 1024 的随机数,即 12345

    然后您将创建您的客户端并将其连接到服务器所在 IP 上的端口 12345 / 80(您可以通过运行 IPCONFIG (Windows) 或适用于您的服务器操作系统的任何命令来计算该服务器 IP)环境。

    【讨论】:

    • 在 java CONNECTION_ADDRESS 中可能被声明为私有字符串 CONNECTION_ADDRESS = "127.0.0.1";并且 LISTENING_PORT 可能是私有的 int LISTENING_PORT = 12345; Socket 的文档是docs.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html
    • 非常好,正是我正在寻找的那种介绍。
    • 如果您分配了一个“不合适的”端口来传输文件,例如用于电子邮件的端口,会发生什么?
    • 没什么——这只是一个约定。假设您为一个游戏编写了一个服务器应用程序,该应用程序在端口 110 或 25(常规 smtp 端口)上侦听客户端请求。只要服务器理解客户端发送的内容,服务器就会响应并且客户端和服务器都将正常运行。您可能会发现有些奇怪的人可能会尝试将他们的邮件客户端连接到您的游戏服务器,但他们的邮件客户端无法正常工作,因为它会发送您的游戏服务器无法理解的命令……没什么大不了的! HTH
    【解决方案2】:

    任何 port,即 0 到 65535 之间的数字。IP address 或接受连接的服务器的名称。尝试解释 TCP 或此 Sun/Oracle tutorial 的 Wikipedia 文章。

    【讨论】:

    • 直截了当,但有时外行术语可能比枯燥的文档更有帮助
    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多