建立一个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)

 

相关文章:

  • 2022-01-19
  • 2022-01-06
  • 2021-08-05
  • 2021-07-15
  • 2021-11-11
猜你喜欢
  • 2022-03-03
  • 2021-12-06
  • 2021-08-27
  • 2021-07-13
  • 2022-01-19
相关资源
相似解决方案