我是

Python新手并尝试使用套接字将字节数组作为原始数据包发送.我的IP是192.168.0.116,我发送给它的设备是192.168.0.64.该客户端设备是基于微控制器的单元,其执行我的代码以简单地嗅探以太网分组并检查特定模式.我正在使用UDP数据包并通过在我的PC中使用’Ostinato’来发送原始UDP数据包来尝试客户端固件.我正在使用Wireshark来监控网络数据包流.客户端似乎可以正常使用Ostinato发送的数据包.

但是当我尝试使用Python发送相同的数据包时(使用如下的原始数据包),它似乎没有吐出字节,因为我无法在Wireshark上看到任何内容,也没有客户端获取任何数据.但是sendto()的返回值是正确的.因此,似乎Python将字节数组提供给要发送的缓冲区(由OS?),但在那里停止.

import socket

CLNT_UDP_IP = '192.168.0.64'

CLNT_UDP_PORT = 5005

svr_sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)

send_data = [0x00, 0x11...]

send_data_arr = bytearray (send_data)

svr_sock.bind (('192.168.0.116',0))

bytes_send = svr_sock.sendto (send_data_arr, (CLNT_UDP_IP, CLNT_UDP_PORT))

svr_sock.close()

为清楚起见,我已经取出了try-except块.

我注意到的另一件事是当套接字关闭时,需要一些时间.如果我注释掉sendto语句,它会立即退出.因此,似乎套接字关闭正在尝试刷新发送缓冲区,而发送缓冲区无法发送数据包.

有任何想法吗?

sendto python_Python sendto似乎没有发送相关推荐

  1. sendto python_Python sendto似乎不发送

    我是Python新手,尝试使用套接字将字节数组作为原始数据包发送.我的IP是192.168.0.116,我要发送这个的设备是192.168.0.64.这个客户端设备是一个基于微控制器的单元,它执行我的 ...

  2. 为Win7 Win8右键菜单发送到添加常用位置(SendTo)

    大家经常会在桌面为常用的应用程序.文件夹或文档创建快捷方式,方便使用.在Win7中,创建方式时只要右键点击应用.文件夹或文档的图标,选择"发送到-桌面快捷方式"就可以了.此外,在& ...

  3. 【Socket网络编程】12. send()、recv()、sendto() 和 recvfrom() 函数解析

    send().recv().sendto()和recvfrom()函数解析 一般情况下,send().recv()在TCP协议下使用,sendto().recvfrom()在UDP协议下使用,也可以在 ...

  4. send,recv,sendto,recvfrom

    send函数 int send( SOCKET s,    const char FAR *buf,    int len,    int flags ); 不论是客户还是server应用程序都用se ...

  5. Linux下Socket通信中非阻塞connect、select、recv 和 recvfrom、send和sendto大致讲解,附带非租塞connect代码、MSG_NOSIGNAL

    linux中send函数MSG_NOSIGNAL异常消息 在服务器端用ctrl+c 来结束服务器接收进程来模拟服务器宕机的情况,结束服务 socket 进程之后,服务端自然关闭进程,可是 client ...

  6. socket c语言 AF_TIPC,socket编程 send() recv() sendto() recvfrom()

    socket编程 send() recv() sendto() recvfrom() int socket( int af, int type, int protocol); af: 指定一个协议簇( ...

  7. send/sendto和recv/recvfrom各自的区别

    一般情况下:    send(),recv()用于TCP,sendto()及recvfrom()用于UDP    但是send(),recv()也可以用于UDP,sendto()及recvfrom() ...

  8. sendto recvfrom 详解

    参考一: sendto和recvfrom一般用于UDP协议中,但是如果在TCP中connect函数调用后也可以用. sendto()和recvfrom()--利用数据报方式进行数据传输 1. 在无连接 ...

  9. UDP 编程中的sendto() 与recvfrom()解析(转)

    sendto() 简述: 向一指定目的地发送数据. include int PASCAL FAR sendto( SOCKET s, const char FAR* buf, int len, int ...

最新文章

  1. oracle负载均衡方案,Oracle负载均衡配置代码
  2. tensorflow从入门到放弃-0
  3. Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常
  4. SpringBoot中使用thymeleaf时ajax请求不能回显消息
  5. 日常生活 -- 嵌入式面试
  6. Cookie操作以及如何在js中调用jsp变量
  7. Qt实现Areo效果_vortex_新浪博客
  8. 常用验证码功能实现大全
  9. java怎么让二维数组不重复_java - 如何创建具有随机产生的,非重复数二维数组? [重复] - SO中文参考 - www.soinside.com...
  10. Android开发笔记(一百八十三)利用HMS轻松扫描二维码
  11. 排污口漂浮物监测系统 yolov5
  12. 学习笔记(3):PS教程-【和东东一起学PS】Photoshop 2020小白到高手(任务驱动式基础+实战教学)-【免费试看】PS软件的必要首选项设置
  13. Linux 配置iSCSI Initiator
  14. 计算机病毒的自述,电脑的自述作文500字
  15. HEVC-环路滤波 之去块效应滤波
  16. 2018年网易实习生笔试题集合之牛牛的闹钟
  17. 【游戏策划】之神仙道的计算公式
  18. 用Python写一个图片标注工具
  19. CnOpenData中国专利详细地址数据
  20. day7-列表和字典作业

热门文章

  1. 大都会人寿宣布高层领导变更
  2. 刘硕琛_下一代企业安全管理
  3. 百度AI Access Token过期处理
  4. Oracle 插入数据
  5. tp5 上传到阿里视频点播
  6. iOS 全新的联系人与联系人UI框架
  7. iphone启用证书_如何在iPhone上启用紧急SOS服务
  8. iOSAPP跳转微信小程序
  9. java鼠标指针锤子,写个锤子JS!它应该是你最后的选择
  10. php读取文件中文,PHP读取txt文件中文乱码的解决方案