Java中的套接字类可以用于与非Java应用程序通信吗?我知道TCP / IP是一个独立的协议套件,但我不确定Java类。
答案 0 :(得分:2)
是。他们当然可以:
“Java平台中的java.net包提供了一个类Socket,它实现了网络上的Java程序和另一个程序之间的双向连接的一面。 “
重点补充。请注意,它没有说“另一个Java程序”。
参考:
实际上,Java Socket
类是操作系统提供的本机套接字API的瘦“包装器”。所有协议实现的东西都在该API的另一端的操作系统中处理。用其他语言编写的程序也将直接使用本机套接字API,或通过Java的Socket
类等效。
我还应该纠正@ rcook评论中的一些技术错误:
java Socket类或本机套接字API 都不实现 TCP / IP和其他协议。实际的网络协议实现是在本地套接字API之后完成的......甚至可能在连接的处理器中完成。
Socket
类不读写“消息”。它读取和写入可能是应用程序级消息的字节。将字节捆绑到网络数据包中由TCP / IP堆栈透明地处理。
(如果你想要一个进行网络级消息传递的类,那么DatagramSocket
是你之后的...模数只能发送某些种消息。)
实际上,不正确表示套接字/ Socket
类是/可用于与其他程序进行通信。如果忽略了细节实现细节,那么“通信”对于程序使用套接字时发生的事情来说是一个很好的术语。 “沟通”这个词在IT中的含义远远超过“发送消息”。