-7

Java 中的套接字类可以用于与非 Java 应用程序通信吗?我知道 TCP/IP 是一个独立的协议套件,但我不确定 Java 类。

4

1 回答 1

2

是的。他们当然可以:

“Java 平台中的 java.net 包提供了一个类 Socket,它实现了 Java 程序和网络上另一个程序之间双向连接的一侧。”

重点补充。请注意,它没有说“另一个 Java 程序”。

参考:

事实上,JavaSocket类是操作系统提供的本机套接字 API 的一个瘦“包装器”。所有协议实现的东西都在操作系统中处理......在该 API 的另一端。用其他语言编写的程序也将直接使用本机套接字 API ...,或者通过等效于 Java 的Socket类。


我还应该纠正@rcook 评论中的几个技术错误:

  1. java Socket 类或本机套接字 API 都没有实现TCP/IP 和其他协议。实际的网络协议实现是在本机套接字 API后面完成的……甚至可能在附加的处理器中。

  2. 该类Socket不读写“消息”。它读取和写入可能是也可能不是应用程序级消息的字节。将字节捆绑到网络数据包中由 TCP/IP 堆栈透明地处理。

    (如果您想要一个进行网络级消息传递的类,那么DatagramSocket您所追求的就是......以您只能发送某些类型的消息为模。)

  3. 事实上,说套接字/类是/可以用来与其他程序通信并没有错。如果您忽略具体的实现细节,“通信”是一个很好的术语,用于描述程序使用套接字时发生的事情。“通信”一词在 IT 中的含义比“发送消息”要广泛得多。Socket

于 2013-07-08T03:24:35.377 回答