python 监听程序当前无法识别连接描述符中请求的服务

Python语言网络编程-天学会Python

HTTP通信

网络上从服务器传送文本到浏览器,需要使用http协议(基于TCP/IP通信协议)。HTTPS 在HTTP 的基础上加入了SSL,增加了数据传输的安全性。目前,网站和接口API都大量使用https。

Python提供了requests库来发送HTTP请求。

安装:pip install requests

发送GET请求

import requests

# 发送GET请求
response = requests.get('https://www.example.com')
# 获取响应内容
print(response.status_code)  # 状态码
print(response.text)         # 响应内容

发送POST请求

import requests

# 发送POST请求
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://www.toutiao.com/post', data=data)
# 获取响应内容
print(response.status_code)  # 状态码
print(response.json())       # 解析JSON响应

http.client是Python标准库中的一个模块,用于实现HTTP客户端的功能,支持HTTP/。

Socket 编程

套接字(Socket)是网络编程的基础。通过套接字,应用程序可以在网络上进行数据的发送和接收。Python的socket模块提供了创建套接字、连接、发送和接收数据的基本功能。

基本组成

  • 服务端:监听端口,等待客户端连接。(初始化 socket,得到文件描述符->调用 bind,将 socket 绑定在指定的 IP 地址和端口->调用 listen,进行监听->调用 accept,等待客户端连接
  • 客户端:主动连接服务器,发送请求并接收响应。(客户端初始化 socket->调用 connect,向服务端的IP和端口发起连接请求->服务端 accept 返回用于传输的 socket 的文件描述符->客户端调用send发送数据->服务端接收数据->客户端断开连接调用 close,则服务端会读取到了 EOF,待处理完数据后,服务端调用 close关闭连接

服务器端代码

import socket

# 创建Socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口
server_socket.bind(('', ))
# 监听连接
server_socket.listen(5)
print("服务器已启动,等待客户端连接...")

while True:
    # 接受客户端连接
    client_socket, addr = server_socket.accept()
    print(f"客户端 {addr} 已连接")
    # 接收数据
    data = client_socket.recv).decode('utf-8')
    print(f"收到数据:{data}")
    # 发送数据
    client_socket.send("Hello, Client!".encode('utf-8'))
    # 关闭连接
    client_socket.close()

客户端代码

import socket

# 创建Socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('', ))
# 发送数据
client_socket.send("Hello, Server!".encode('utf-8'))
# 接收数据
data = client_socket.recv).decode('utf-8')
print(f"收到数据:{data}")
# 关闭连接
client_socket.close()
原文链接:,转发请注明来源!