#感谢Justin Seitz,这是阅读其作过程中的随笔。
#20201112 China QinXD

import socket

server_host = 'www.baudu.com' #服务端地址,本案例先用百度
server_port = 80 #服务端开放的ip

#建立客户端,AF_iNET:使用标准的IPv4地址或主机名,SOCK_STREAM:声明这是一个tcp客户端
TCP_Client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

TCP_Client.connect((server_host,server_port)) #客户端连接服务器

TCP_Client.send('GET / HTTP/1.1 Host:baidu.com'.encode()) #客户端向服务器发生信息

response = TCP_Client.recv(4096) #客户端接收服务器返回单的信息
print(response) #打印接收到的内容(此案例返回为404页面内容) 

接下来用requests模块来实现一下

import requests

TCP_Client = requests.session()

url = 'http://www.baidu.com' #指定请求地址,端口默认

TCP_recv = TCP_Client.get(url) #发送get请求并接收返回内容

print(TCP_recv.content) #打印返回内容

requests 也可以设定请求端口,但实现起来不如socket方便,其更适用于爬虫项目。大多数Python工程师也由这两个模块而走向了不同的方向。此外pycurl库也非常灵活,感兴趣的朋友可以上手了解。