python出现套接字创建不成功_python套接字连接在Mac上被拒绝但在Windows
这不是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相关推荐
- python出现套接字创建不成功_python套接字协议不支持 - python
我在RaspberryPi3上使用了python-can-isotp,并使用示例代码对其进行了测试,但出现错误. 我的简单代码: import isotp s = isotp.socket() s2 ...
- python生僻字如何转码_Python检测生僻字的实现方法
import re pattern = re.compile('[abc]') match_result = pattern.match('fabc') if match_result: print ...
- python井字棋游戏代码_python实现井字棋游戏
python实现井字棋游戏 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: python实现井字棋游戏.txt ] (友情提示:右键点上行txt文档名->目标 ...
- python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能
引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Django-observer,但Django很久没用了,所以提下这 ...
- Python网络编程2:创建套接字和套接字对象的内建方法
1.使用socket模块中socket()函数创建套接字: socket()函数返回一个socket对象,该对象的方法实现了各种socket系统调用. 语法: import socket socket ...
- python套接字编程_Python套接字编程(1)——socket模块与套接字编程
在Python网络编程系列,我们主要学习以下内容: 5. 常见的Python异步编程框架 6. 协程在Python网络编程中的使用 本文介绍Python下的基本套接字编程,主要基于 socket 模块 ...
- C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)
文章目录 名称 使用格式 功能参数描述 参数 sockfd addr addrlen 返回值 示例 man 2 文档中的accept解释 错误处理 名称 accept() 接收一个套接字中已建立的连接 ...
- 套接字创建、连接和关闭函数
下图是一对 TCP 客户与服务器进程之间发生的一些典型事件的时间表. [img]http://dl2.iteye.com/upload/attachment/0126/4398/db4635bf-09 ...
- python创建tcp socket_Python Socket如何建立TCP连接
在 Python 程序中创建 TCP 服务器时,创建通用 TCP 服务器的一般演示代码如下.需要记住的是,这仅是设计服务器的一种方式.一旦熟悉了服务器设计,可以修改下面的代码来操作服务器. ss = ...
最新文章
- TOAD FOR MYSQL 进行数据插入时乱码的解决办法---MariaDB 5.5
- python 读写函数
- 云管理成功的关键:应用工作流
- 短时傅里叶分析:spectrogram函数
- Nginx静态资源优化配置之tcp_nopush和tcp_nodelay
- hdu5720_贪心
- 千元平板电脑排行榜_最值得买的平板电脑推荐-最佳平板电脑品牌排行榜【2020年10月】...
- android 参数 attrs.xml,使用attrs.xml自定义属性
- python自动备份手机_python实现自动备份windows应用数据
- Python中的进程和线程
- totolink 虚拟服务器,TOTOLINK无线中继设置教程(图文)
- Python网络编程之socketserver实现多并发
- 【WC2013】糖果公园
- SHP(shapefile)文件
- 流畅的python不适合初学者_学习《流畅的python》第一天
- 文档数据库-MongoDB
- 搜狗浏览器收藏夹误删恢复
- STM32F1系列之常用外设说明
- HCNP路由交换学习指南(第一章)学习笔记
- 水下机器人之电机控制
热门文章
- 吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归
- vlc生成rtsp流
- 使用purge_relay_logs 清理relay log
- 从SAE又回到BAE,感觉好轻松
- 暴雪停止与Kespa合作 星际联赛或被迫停赛
- 三层交换机与路由器的主要区别
- ASP.NET 如何动态修改 title Meta link标签
- 3704对象关闭时_VB中“对象关闭时,不允许操作”解决方案 3704 錯誤 | 学步园...
- centos8网络配置开启wifi_CentOS 7.5 最小安装开启 WIFI 连接的设置方法
- bal插口_EBS R12各模块接口表大全