tcp客户端,实现与百度之间的通信

代码如下:

#导入socket模块
import socket 

#1创建一个socket套接字
tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#2connect 链接服务器,需要指定特定ip 和端口
baidu_id = "www.baidu.com"#百度

baido_port = 80 #端口80

tcp_socket.connect((baidu_id,baido_port))

#向指定端口发送消息。get表示请求方式,HTTP/1.1,http协议,版本1.1 
#\r回车 \n换号    Host:主机域名    utf-8 编码格式
#向浏览器发送这句话,让浏览器返回首页信息
tcp_socket.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n".encode("utf-8"))


# 接受浏览器返回的消息,一般情况下只接受头部信息就可以,这里用循环接受了所有信息

while True:
	#1024表示一次接受最多1k数据
	recv_data = tcp_socket.recv(1024)
	
	#判断如果有数据,就接受数据,没有就退出循环
	if recv_data:
		#打印接受的数据到控制台
		print(recv_data.decode("utf-8"))
	else:
		
		break

#关闭tcp 套接字

返回消息的头部:
HTTP/1.1 200 OK
Date: Mon, 19 Nov 2018 08:55:15 GMT
Content-Type: text/html
Content-Length: 14615
Last-Modified: Thu, 15 Nov 2018 02:03:00 GMT
Connection: Keep-Alive
Vary: Accept-Encoding
Set-Cookie: BAIDUID=E132241398943938F108BE56FAF128FD:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=E132241398943938F108BE56FAF128FD; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: PSTM=1542617715; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "
ETag: “5becd3d4-3917”
Server: BWS/1.1
X-UA-Compatible: IE=Edge,chrome=1
Pragma: no-cache
Cache-control: no-cache
Accept-Ranges: bytes

猜你喜欢

转载自blog.csdn.net/zhangbiaoxiaoming/article/details/84287827