求助!
如何使用socket连接特定TCP端口确定服务是否可达!!!
我socket传入www.baidu.com和80返回的是400 bad request 。
啊啊啊我该做什么啊 查了很多帖子都是模拟客户端和服务器通信,要使用什么api现在还不明确,我好憨啊[face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face]
1条回答 默认 最新
- 你知我知皆知 2024-07-24 01:36关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在Python中,你可以使用
socket
模块来实现这个功能。以下是一个简单的例子:import socket # 创建一个socket对象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置为可重用(REUSEADDR)以允许绑定多个地址 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 绑定到指定的IP地址和端口号 s.bind(('localhost', 80)) # 监听连接请求 s.listen(5) while True: # 等待接受一个新的连接请求 conn, addr = s.accept() # 发送HTTP请求 request = "GET / HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: close\r\n\r\n" conn.sendall(request.encode('utf-8')) # 接收响应 response = b'' while True: data = conn.recv(1024) if not data: break response += data # 打印响应 print(response.decode('utf-8')) # 关闭连接 conn.close() # 关闭socket s.close()
在这个例子中,我们首先创建了一个新的
socket
对象,并设置了它为可重用。然后,我们绑定了我们的IP地址和端口号。接着,我们在监听器上等待新的连接请求。当有连接时,我们发送一个HTTP GET请求到百度网站的根目录。然后,我们开始接收来自服务器的响应数据。一旦接收到完整的响应,我们就打印出服务器的响应内容并关闭连接。
最后,我们关闭了所有的socket资源。
注意:这个例子是基于一个非常基础的理解,实际应用可能需要处理更多的错误情况和异常。例如,你可能需要添加错误检查,或者在服务器不响应时采取更积极的措施。
解决 无用评论 打赏 举报