Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 在socket编程中,为什么;“客户”;及;服务器";颠倒的?_Sockets_Tcp_Server_Udp_Client - Fatal编程技术网

Sockets 在socket编程中,为什么;“客户”;及;服务器";颠倒的?

Sockets 在socket编程中,为什么;“客户”;及;服务器";颠倒的?,sockets,tcp,server,udp,client,Sockets,Tcp,Server,Udp,Client,为什么在套接字编程中,“服务器”接收数据包,而“客户端”发送数据包 我正在深入研究C/C++和Nodejs中的套接字编程;在任何地方,在文献和例子中,“服务器”接收数据包,而“客户端”传输数据包 这对我来说没有意义。“服务器”不应该发送数据包,而“客户端”不应该接收数据包吗?为什么命名约定是这样的 编辑:几个例子。 1.Beej的C/C++数据报示例 2.nodejs示例: 根据维基百科的说法,这些术语是运行在许多不同类型系统上的模型的一部分,可以追溯到1964年 尽管服务器和客户机具有发送/

为什么在套接字编程中,“服务器”接收数据包,而“客户端”发送数据包

我正在深入研究C/C++和Nodejs中的套接字编程;在任何地方,在文献和例子中,“服务器”接收数据包,而“客户端”传输数据包

这对我来说没有意义。“服务器”不应该发送数据包,而“客户端”不应该接收数据包吗?为什么命名约定是这样的

编辑:几个例子。
1.Beej的C/C++数据报示例

2.nodejs示例:

根据维基百科的说法,这些术语是运行在许多不同类型系统上的模型的一部分,可以追溯到1964年

尽管服务器和客户机具有发送/接收信息的能力,但服务器具有处理客户机不具备的信息的资源和计算能力

客户机只是一个轻量级的util,它以服务器希望接收信息或接收某些指令的方式将信息打包并发送到服务器,但客户机不需要像服务器那样多的资源

服务器-客户端关系示例:

  • Puppet Server(管理所有规则、向客户端发送信息和订单等)
  • Puppet Agent(从Puppet服务器接收订单,安装在多个节点中,并发送状态信息)

  • Web服务器(HTTP Apache或Ngnix,即)(处理请求/代码以交付HTML结果)

  • Web客户端(wget、Chrome、Firefox、CURL、links)将请求发送到Web服务器进行处理
记住检查UDP服务器是否正在侦听(等待信息):

UDP客户端是具有“发送”信息功能的客户端:

client.send
哪一个回答了你自己的问题:

“服务器”不应该发送数据包,“客户端”不应该接收数据包吗 他们?为什么命名约定是这样的


在网络中,服务器程序是被动等待连接进入的程序,而客户端是主动启动连接的程序。一旦建立了连接,双方都可以发送和接收数据。@Someprogrammerdude啊,我明白了。客户端/服务器标签基于连接,而不是UDP数据包的方向。Eh。就UDP而言,双方发送和接收数据是很常见的。客户机通常首先发送数据包,因为它需要服务,并且必须以某种方式请求服务。通常,服务器也会将数据包发送回客户机。客户端向服务器请求一些东西,服务器执行任务并返回结果。是的,IP和TCP/UDP是对等协议。在这个级别上,没有“服务器”和“客户端”。直到你接触到像TLS这样的东西,区别才被发现。
client.send