基于套接字的通信独立于用于实现它的编程语言。这怎么可能? [关闭]
Posted
技术标签:
【中文标题】基于套接字的通信独立于用于实现它的编程语言。这怎么可能? [关闭]【英文标题】:Socket-based communication is independent of a programming language used for implementing it. How is it possible? [closed] 【发布时间】:2014-11-18 05:15:53 【问题描述】:我了解基于套接字的通信在编程语言之间是独立的。这意味着,用 Java 语言编写的套接字程序可以与用 C 或 C++ 套接字编写的程序通信 程序。我在堆栈溢出中看到了许多类似的问题,我很欣赏这些答案。 但我没有得到我要找的东西。任何人都可以用示例代码来回答这个问题,例如作为服务器的 JAVA 程序和作为客户端的 C++ 程序,它们在不同的机器上运行以及它们如何通信?
谢谢你:)
【问题讨论】:
不清楚你不明白什么。如所问,这个问题太宽泛了。 最后,发送和接收的只是字节。有多种方法可以编写代码。程序员只需设置逻辑,以便字节在每个应用程序中用于相同的含义。 @David Sehwartz 我只是想知道客户端/服务器端的 JAVA 和 C++ 程序如何相互理解 @TheUndeadFish 谢谢你的帮助。现在这对我来说很有意义 @KishoreKumarNaidu 他们阅读、显示和理解相同图像文件的方式相同。它们遵循一些协议或规范,指定哪些字节去哪里。 【参考方案1】:套接字通信基本上是从一个端口向另一个端口发送一组位(数据/数据包,您会在更高级别调用)。端口只不过是一个文件/IO流,它可以在给定正确地址的情况下侦听数据或发送数据。有效地址是有效 IP 地址(取决于您是否需要本地或远程通信)和端口号的组合。
为了回答您的问题,我们基本上是打开一个文件,写入或等待从另一个应用程序写入。因此,文件打开、关闭、读取、写入与编程语言无关。不同语言之间唯一不同的是为实现此目的而提供的 API 或接口。
当您打开一个套接字时,您提到要用于此通信的协议,根据您的应用程序的目的,它可能是 TCP/UDP。协议决定发送和接收的数据包/数据如何排序。基本上,试图在试图沟通的两方之间建立一个共同点。
希望这个答案有帮助!!
【讨论】:
以上是关于基于套接字的通信独立于用于实现它的编程语言。这怎么可能? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
什么是 socket?简述基于 tcp 协议的套接字通信流程?