【问题标题】: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 他们阅读、显示和理解相同图像文件的方式相同。它们遵循一些协议或规范,指定哪些字节去哪里。

标签: java c++ sockets


【解决方案1】:

套接字通信基本上是从一个端口向另一个端口发送一组位(数据/数据包,您会在更高级别调用)。端口只不过是一个文件/IO流,它可以在给定正确地址的情况下侦听数据或发送数据。有效地址是有效 IP 地址(取决于您是否需要本地或远程通信)和端口号的组合。

为了回答您的问题,我们基本上是打开一个文件,写入或等待从另一个应用程序写入。因此,文件打开、关闭、读取、写入与编程语言无关。不同语言之间唯一不同的是为实现此目的而提供的 API 或接口。

当您打开一个套接字时,您提到要用于此通信的协议,根据您的应用程序的目的,它可能是 TCP/UDP。协议决定发送和接收的数据包/数据如何排序。基本上,试图在试图沟通的两方之间建立一个共同点。

希望这个答案有帮助!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2010-10-16
    相关资源
    最近更新 更多