【问题标题】:What application layer protocol is being used when using sockets?使用套接字时使用的是什么应用层协议?
【发布时间】:2018-10-04 11:05:16
【问题描述】:

使用网络浏览器时,所使用的应用层协议是 HTTP。虽然我经常使用套接字来创建与服务器的连接并传递字符串,但 Python 中经常使用的示例可能是

import socket

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 8089))
clientsocket.send('hello')

通过这个基本示例发送字符串'hello'时使用的是什么应用层协议?

【问题讨论】:

  • @oguzismail:我不认为一个简单的谷歌搜索会像你声称的那样回答这个问题 - 但也许你可以更详细地解释应该问哪个问题以及哪些搜索结果会实际回答问题以及如何回答。除此之外 - 即使没有使用标准的应用层协议,像 OP 那样通过套接字发送数据实际上也被认为是应用层的数据传输。最后,HTTP 也只是通过套接字传输数据,不同之处在于使用了标准化的应用层协议。

标签: sockets networking application-layer


【解决方案1】:

在您的情况下没有使用特定的应用层协议。应用层协议是某种标准,如何在 TCP/UDP 之上交换任何传输层的消息。定义了这些标准,以便不同的实现可以通过仅实现特定标准来相互交互。

您也可以在不使用标准化应用层协议的情况下使用套接字,而只需自己编写发送的消息类型 -​​ 这正是您所做的。

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多