Python3编写TCP客户端

  建立一个TCP客户端,首先我们需要创建一个“对象”然后通过这个对象来帮助我们来做发送消息等一系列的操作。详细如下代码:

import socket

target_host = "www.baidu.com"
target_port = 80

#建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
'''
1;AF_INET:表示说明我们将使用标准的IPV4地址或者说明书。
2;SOCK_STREAM:表示这是一个TCP客户端。
'''

#链接客户端
client.connect((target_host,target_port))

#发送数据
client.send(b"GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
'''
client.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
错误背景:程序想创建一个TCP连接,在发送数据的时候报错,表明send函数需要传byte类型值。
类型错误:TypeError: a bytes-like object is required, not 'str'
解决方法:
1、在数据前面加b,强制转换
client.send(b"GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
2、发送数据的时候进行编码
client.send(("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n").encode())
'''
#接收一些数据
response = client.recv(4096)

print(response)

 

posted @ 2020-05-08 22:17  天象独行  阅读(984)  评论(0编辑  收藏  举报