首页 > 编程问答 >Python 套接字请求在很多情况下都会失败

Python 套接字请求在很多情况下都会失败

时间:2024-07-23 03:58:11浏览次数:13  
标签:python sockets

我在 python 中尝试了超过 5 种不同的方法,尽管人们说它在其他论坛上有效,但所有这些方法都惨遭失败。

import socket

message = "test" clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clientsocket.connect(('1.1.1.1', 80)) clientsocket.send(message.encode())

OR

`import socket

message = "test" sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.sendto(b"test",("1.1.1.1",80))`

我只是想将该死的数据发送到 1.1.1.1 作为测试为什么这这么垃圾**


的 Python 套接字代码似乎大体上是正确的,但无法发送数据可能有多种原因。以下是一些故障排除步骤和可能的解决方案:

  1. 检查防火墙和网络连接:

  2. 确保的防火墙或防病毒软件不会阻止来自 Python 脚本的出站连接。

  3. 验证是否可以访问互联网,并确认 1.1.1.1(Cloudflare 的公共 DNS 服务器)可通过运行 ping 1.1.1.1 从的系统访问。

  4. 1.1.1.1 和端口 80:

  5. 虽然 1.1.1.1 是一个有效的 IP 地址,但端口 80 通常用于 HTTP 流量。如果尝试发送原始的“测试”消息而不遵守 HTTP 协议,服务器(1.1.1.1)可能会丢弃的数据,因为数据格式不正确。

  6. 尝试其他端口: 考虑使用其他端口进行测试,例如 8080,或者设置一个本地服务器以获得更可控的环境。

  7. TCP 与 UDP:

  8. 提供了 TCP( SOCK_STREAM )和 UDP( SOCK_DGRAM )套接字的示例。它们是不同的协议,需要服务器端提供相应的设置。

  9. TCP: 需要建立连接。的 TCP 代码看起来正确,但服务器端必须侦听连接并在发送数据之前接受连接。
  10. UDP: 无需连接。的 UDP 代码应该发送数据包,但服务器仍然必须侦听传入的数据包,并且可能无法以期望的方式做出响应。

  11. 错误处理:

  12. 的代码不包含任何错误处理。尝试包装的套接字操作 try...except 块以捕获并打印可能发生的任何异常。这可以提供有关问题原因的宝贵信息。

建议:

  • 用于测试的简单服务器: 要简化测试,请考虑在本地计算机上设置一个简单的 Python 服务器,该服务器侦听特定端口上的传入连接或数据包。这将允许在受控环境中测试的套接字代码。
  • 清晰的协议: 定义客户端和服务器将使用的明确协议。这可以像期望接收特定消息然后发送回确认消息一样简单。

改进代码示例(TCP,包含错误处理):

import socket

HOST = '1.1.1.1'  # 尝试使用 'localhost' 进行本地测试服务器
PORT = 8080  # 选择其他端口

message = "test"

try:
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as clientsocket:
        clientsocket.connect((HOST, PORT))
        clientsocket.sendall(message.encode())
        data = clientsocket.recv(1024)  # 接收来自服务器的可选响应
        print('收到:', data.decode())

except Exception as e:
    print(f"发生错误:{e}")

请记住,如果没有在目标 IP 地址和端口上运行的适当服务器,成功发送数据并接收响应的可能性很小。

标签:python,sockets
From: 78780570

相关文章

  • Python 网络套接字
    我一直尝试通过Python访问该网站的websocket,但是需要绕过CloudFlare,现在我尝试通过cookie进行绕过,但是这不起作用。我已经尝试在没有cookie的情况下执行此操作,但这也不起作用。importwebsocketimportbase64importosdriver=selenium.webdriver.Firefox()driver.ge......
  • 如何在Python中使用Selenium提取data-v-xxx?
    因为我想查看每个class='num'内的文本是否大于0。如果测试通过,那么我需要获取venuen-name内的文本。我观察到,data-v是相同的。所以我的方法是获取相同的data-v-<hashvalue>来查找场地名称。我尝试了不同的方法来提取,但仍然无法提取。有什么建议吗?这是DOM<div......
  • Python:添加异常上下文
    假设我想提出一个异常并提供额外的处理信息;最好的做法是什么?我想出了以下方法,但对我来说有点可疑:definternal_function():raiseValueError("smellysocks!")defcontext_function():try:internal_function()exceptExceptionase:......
  • 【视频】Python遗传算法GA优化SVR、ANFIS预测证券指数ISE数据-CSDN博客
    全文链接:https://tecdat.cn/?p=37060本文旨在通过应用多种机器学习技术,对交易所的历史数据进行深入分析和预测。我们帮助客户使用了遗传算法GA优化的支持向量回归(SVR)、自适应神经模糊推理系统(ANFIS)等方法,对数据进行了特征选择、数据预处理、模型训练与评估。实验结果表明,这些方法......
  • Python学习笔记42:游戏篇之外星人入侵(三)
    前言在之前我们已经创建好了目录,并且编写好了游戏入口的模块。今天的内容主要是讲讲需求的分析以及项目各模块的代码初步编写。在正式编写代码前,碎碎念几句。在正式编写一个项目代码之前,实际是有很多工作要做的。就项目而言,简单的定项,需求对齐,项目架构设计,实际的代码编写,......
  • Python入门知识点 5--流程控制语句
    先来分享一个pycharm使用小技巧   红色波浪线:提醒可能报错   黄色波浪线:提醒书写不规范,ctrl+alt+l去掉黄线   code--Reformatcode,就可以去掉黄线,调整代码格式1、程序三大执行流程(1)顺序执行        程序执行时,代码从上往下,从左往右执行,中间......
  • python里读写excel等数据文件的几种常用方式
    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv、txt等)、excel文件、数据库文件、api等。下面整理下python有哪些方式可以读取数据文件。1.python内置方法(read、readline、readlines)read():一次性读取整个文件内容。推荐使用read(size)方法,size越大......
  • python+flask计算机毕业设计鲜花坊销售平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,线上购物已成为人们日常生活的重要组成部分,尤其在追求生活品质与个性化的今天,传统鲜花销售行业正经历着深刻的变革......
  • python+flask计算机毕业设计快递驿站管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,快递行业迎来了前所未有的繁荣期,快递包裹量急剧增长,对快递末端配送服务提出了更高的要求。传统的快递配送模式面临......
  • python-爬虫实例(4):获取b站的章若楠的视频
    目录前言        道路千万条,安全第一条        爬虫不谨慎,亲人两行泪获取b站的章若楠的视频一、话不多说,先上代码二、爬虫四步走1.UA伪装2.获取url3.发送请求 4.获取响应数据进行解析并保存 总结前言        道路千万条,安全第一条......