这不是connection refused的重复。此问题询问MacOS和Windows之间的区别。此外,Mac上的防火墙已关闭。

我正在尝试通过套接字与设备通信。代码用python编写。出于某种原因,如果我在Windows上运行我的代码,一切正常,但如果我在Mac上执行,则不会。我的一位同事在C中编写了相同的代码,并在Mac上运行并且没有任何问题。有人知道会出现什么问题吗?

如果需要,我可以提供更多详细信息。请告诉我哪些。

修改

这是代码

class Device(object):

def __init__(self, ip_addr, port):

self.ip_addr = ip_addr

self.port = port

def say_hi(self):

msg = [254, 49, 0]

ret = self.send_msg(msg)

msg = [254, 29]

return self.send_msg(msg)

def say_bye(self):

msg = [254, 49, 0]

ret = self.send_msg(msg)

msg = [254, 30]

return self.send_msg(msg)

def get_status(self):

msg = [254, 49, 0]

ret = self.send_msg(msg)

msg = [254, 16]

return self.send_msg(msg)

def send_msg(self, msg):

msg = ''.join(chr(i) for i in msg)

s = socket.create_connection((self.ip_addr , self.port))

s.sendall(msg)

ret = s.recv(1)

s.close()

return ord(ret)

这是我得到的错误:

[Errno 61] Connection refused

错误发生在以下行:

s = socket.create_connection((self.ip_addr , self.port))

编辑2

ip_addr='172.24.176.46', port='2101'

我可以访问该地址。以下是ping的结果

$ ping 172.24.176.46

PING 172.24.176.46 (172.24.176.46): 56 data bytes

64 bytes from 172.24.176.46: icmp_seq=0 ttl=64 time=0.495 ms

64 bytes from 172.24.176.46: icmp_seq=1 ttl=64 time=0.398 ms

64 bytes from 172.24.176.46: icmp_seq=2 ttl=64 time=0.452 ms

^C

编辑3

我找到了一个有效的代码,它可以在Windows和Mac上运行。我将在下面提供,但基本上我做的是在类初始化期间(即在__init__)和不关闭send_msg中的连接时创建连接。这是我的问题:这样做是否安全和正确?不关闭连接似乎不是一个好方法。我很感激任何帮助。我的新代码如下。

class Device(object):

def __init__(self, ip_addr, port):

self.ip_addr = ip_addr

self.port = port

self.socket = socket.create_connection((self.ip_addr , self.port))

def say_hi(self):

msg = [254, 49, 0]

ret = self.send_msg(msg)

msg = [254, 29]

return self.send_msg(msg)

def say_bye(self):

msg = [254, 49, 0]

ret = self.send_msg(msg)

msg = [254, 30]

return self.send_msg(msg)

def get_status(self):

msg = [254, 49, 0]

ret = self.send_msg(msg)

msg = [254, 16]

return self.send_msg(msg)

def send_msg(self, msg):

msg = ''.join(chr(i) for i in msg)

self.socket.sendall(msg)

ret = self.socket.recv(1)

return ord(ret)

python出现套接字创建不成功_python套接字连接在Mac上被拒绝但在Windows相关推荐

  1. python出现套接字创建不成功_python套接字协议不支持 - python

    我在RaspberryPi3上使用了python-can-isotp,并使用示例代码对其进行了测试,但出现错误. 我的简单代码: import isotp s = isotp.socket() s2 ...

  2. python生僻字如何转码_Python检测生僻字的实现方法

    import re pattern = re.compile('[abc]') match_result = pattern.match('fabc') if match_result: print ...

  3. python井字棋游戏代码_python实现井字棋游戏

    python实现井字棋游戏 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  python实现井字棋游戏.txt ] (友情提示:右键点上行txt文档名->目标 ...

  4. python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能

    引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Django-observer,但Django很久没用了,所以提下这 ...

  5. Python网络编程2:创建套接字和套接字对象的内建方法

    1.使用socket模块中socket()函数创建套接字: socket()函数返回一个socket对象,该对象的方法实现了各种socket系统调用. 语法: import socket socket ...

  6. python套接字编程_Python套接字编程(1)——socket模块与套接字编程

    在Python网络编程系列,我们主要学习以下内容: 5. 常见的Python异步编程框架 6. 协程在Python网络编程中的使用 本文介绍Python下的基本套接字编程,主要基于 socket 模块 ...

  7. C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)

    文章目录 名称 使用格式 功能参数描述 参数 sockfd addr addrlen 返回值 示例 man 2 文档中的accept解释 错误处理 名称 accept() 接收一个套接字中已建立的连接 ...

  8. 套接字创建、连接和关闭函数

    下图是一对 TCP 客户与服务器进程之间发生的一些典型事件的时间表. [img]http://dl2.iteye.com/upload/attachment/0126/4398/db4635bf-09 ...

  9. python创建tcp socket_Python Socket如何建立TCP连接

    在 Python 程序中创建 TCP 服务器时,创建通用 TCP 服务器的一般演示代码如下.需要记住的是,这仅是设计服务器的一种方式.一旦熟悉了服务器设计,可以修改下面的代码来操作服务器. ss = ...

最新文章

  1. TOAD FOR MYSQL 进行数据插入时乱码的解决办法---MariaDB 5.5
  2. python 读写函数
  3. 云管理成功的关键:应用工作流
  4. 短时傅里叶分析:spectrogram函数
  5. Nginx静态资源优化配置之tcp_nopush和tcp_nodelay
  6. hdu5720_贪心
  7. 千元平板电脑排行榜_最值得买的平板电脑推荐-最佳平板电脑品牌排行榜【2020年10月】...
  8. android 参数 attrs.xml,使用attrs.xml自定义属性
  9. python自动备份手机_python实现自动备份windows应用数据
  10. Python中的进程和线程
  11. totolink 虚拟服务器,TOTOLINK无线中继设置教程(图文)
  12. Python网络编程之socketserver实现多并发
  13. 【WC2013】糖果公园
  14. SHP(shapefile)文件
  15. 流畅的python不适合初学者_学习《流畅的python》第一天
  16. 文档数据库-MongoDB
  17. 搜狗浏览器收藏夹误删恢复
  18. STM32F1系列之常用外设说明
  19. HCNP路由交换学习指南(第一章)学习笔记
  20. 水下机器人之电机控制

热门文章

  1. 吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归
  2. vlc生成rtsp流
  3. 使用purge_relay_logs 清理relay log
  4. 从SAE又回到BAE,感觉好轻松
  5. 暴雪停止与Kespa合作 星际联赛或被迫停赛
  6. 三层交换机与路由器的主要区别
  7. ASP.NET 如何动态修改 title Meta link标签
  8. 3704对象关闭时_VB中“对象关闭时,不允许操作”解决方案 3704 錯誤 | 学步园...
  9. centos8网络配置开启wifi_CentOS 7.5 最小安装开启 WIFI 连接的设置方法
  10. bal插口_EBS R12各模块接口表大全