这不是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. 服务端的第六周第二次的课程
  2. 《Android 游戏开发大全(第二版)》——6.4节角色扮演游戏
  3. asp.net 加载xml到menu
  4. 贪心算法之用优先队列解决最短路径问题(Dijkstra算法)
  5. 工作100:v-model自定义是父亲组件得值
  6. 【转】10.Qt编程涉及的术语和名词
  7. tomcat日志,用户以及启动时的一些问题
  8. IDEA引入外部jar包的方法
  9. sw工程图导出bom_SolidWorks材料明细表自动调用钣金展开尺寸,轻松导出BOM表
  10. 详解 | Spring Boot 最核心的 3 个注解详解
  11. Pycharm更改快速规整代码快捷键
  12. vc++中ListBox用法
  13. Qt学习之C++基础
  14. c语言求素数思路,C语言 素数三种思路求解
  15. Android国家区号 中英文
  16. 三合一收款二维码原理以及源码
  17. 星空下的新赛点,民营航空迎来新机会
  18. 以太网网络变压器EMI电流及以太网网络变压器对EMI阻断原理
  19. 红米Note5官方刷机日记 - 小米助手Recovery刷机
  20. 数据猿·金猿榜丨2017工业大数据领域最具潜力创业公司

热门文章

  1. Java应用程序项目的打包与发行
  2. 高级运维工程师的打怪升级之路
  3. ofbiz之entity 实体解析 扩展 视图 复合列写法
  4. winscp开启ftp_如何使用winscp,如何使用winscp连接FTP
  5. wxml 点击图片下载_微信小程序通过ipfs-api 实现图片文件在私有ipfs网络的上传与下载显示...
  6. jstree中文api文档_开发中文 API 的一些策略
  7. python爬虫执行js代码_爬虫之python3用execjs执行JS代码
  8. 生成删除约束语句 SQL语句
  9. java自己实现读写锁_关于读写锁算法的Java实现及思考
  10. postgresql 子查询_PostgreSQL子事务及性能分析