自从过去两年以来,我一直在.Net中进行Windows编程。 现在我转向网络编程,所以我只是坚持理解 网络编程的基础知识,谷歌搜索后我来到StackOverflow学习 来自你们所有人。
我的困惑是关于消息如何在分布式环境中的系统之间流动?
我的意思是假设我想向连接到LAN或Internet的系统发送消息"Hello"
,
然后发送消息的步骤是什么。
第二件事是假设我的系统是"A"
并且我发送消息给通过线路连接的系统"B"
,因此消息如何在线上流动以及系统"B"
如何读取它来自电线?
请有人以外行的方式解释我。
提前谢谢大家。
答案 0 :(得分:1)
以下是对正在发生的事情的简短外行解释。您可以搜索任何突出显示的术语,以阅读有关整个堆栈中特定图层的更多信息。
HTTP
数据包,其中包含所需页面的GET请求详细信息。 TCP/IP
协议将该数据包传递到目标计算机。 domain name
(即http://google.com),网络堆栈会向其DNS
服务器发出请求,要求将该域名解析为{{1} (即74.125.155.99)
如果DNS服务器没有在本地缓存该信息,则可能需要联系其他DNS服务器。 IP address
数据包中。 Ethernet frame
中的目标计算机MAC address
。如果成功,则它将通过直接寻址到该机器的MAC地址的网络线路发送以太网帧数据包。 答案 1 :(得分:0)
HTTP over TCP / IP是Web服务使用的。大多数通信使用TCP / IP及其协议。
您可以找到快速TCP/IP tutorial here和更详细的one here
答案 2 :(得分:0)
基本上,不是交换消息的计算机,而是这些计算机上的程序。所以你需要有两个程序或一个程序,但在两台机器上运行实例。现在,这里发挥了人们称之为套接字的功能。无论如何,您将需要有关套接字编程的详细阅读和基本代码示例,因此我将告诉您基本知识。套接字是网络抽象。这是不同计算机上的程序通信的事情。您使用套接字建立连接。然后基本上套接字可以被处理(几乎)像文件。您将字节(您的消息)写入套接字,另一端通过套接字接收消息。这只是一个基本的想法,下一步是找到一个用你想要的语言编写套接字编程的好例子
答案 3 :(得分:0)
您可以通过多种方式在网络上实现这一目标。我认为你能做到的最简单方法是使用ASP.NET Web Services。
但是你应该看看WCF,这已经成为过去几年在MS世界中这样的思维模式。使用WCF允许您使用许多不同的协议,只需更改xml配置文件。