2013-07-08 31 views
-6

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

+5

是的,他们可以.. –

+0

@OliCharlesworth你也可以做出答案。 – Jeffrey

+0

是的,可能的小问题是您没有使用*类*与非Java应用程序直接通信*您正在使用套接字类来发送和接收套接字消息,这些套接字消息可以被读取并由许多其他语言编写。但是这些类是java特有的。如果OP不明白这是可能的,他可能不会理解类和它们实现的协议之间的区别。 – arcy

回答

2

是的。当然,他们可以:

“java.net包在Java平台提供了一个类,插座,实现你的Java程序与网络上的其他程序之间的双向连接的一侧“。

强调添加。请注意,它不会说“另一个Java程序”。

参考:

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


我还要纠正@ rcook的评论一对夫妇的技术失误:

  1. 无论是在Java Socket类或本机插座API 实现 TCP/IP等协议。实际的网络协议实现是在之后完成的本地套接字API ......甚至可能在附加的处理器中。

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

    (如果你想有一个类,做网络级的消息,然后DatagramSocket是你后...模,你只能发送特定种消息

  3. 其实,这是不不正确说插座/ Socket类是/可以用来与其他程序通信。如果你忽略了细节的实现细节,“沟通”对于程序使用套接字时发生的事情来说是一个很好的术语。 “沟通”一词在信息技术方面的含义远远超过“发送信息”。