局域网内python socket实现windows与linux间的消息传送


Posted in Python onApril 19, 2019

有个需求,就是在windows上看见一篇介绍linux相关的文章,想在局域网内的另外一台linux电脑上尝试一下,

于是就需要把该网页链接发送给linux,不想一点一点敲链接,又苦于没有找到其它好的方法。

想起之前学习计算机网络时了解到的socket,于是再次打开课本,代码(python3)如下:

客户端(windows)代码:

# 局域网内的windows客户端
from socket import *  #导入socket里的所有东西
serverName = '127.0.0.1' #换成局域网内服务器端IP即可实现局域网内通信
serverPort = 12001   #服务器端口,除了已知的被占用端口都可,一般建议10000-65535
clientSocket = socket(AF_INET,SOCK_DGRAM) #UDP连接
#ipv4 udp
while True:
 message = input('please input: \n')
 if (message == '0'): #输入0时结束发送
  break
 clientSocket.sendto(message.encode(),(serverName,serverPort)) #向服务器发送消息,使用socket时,只能以字节形式传送,故需要encode()
 reply,serverAddress = clientSocket.recvfrom(2048)    #接收服务器返回的消息和地址
 print (reply)
clientSocket.close()  #关闭连接

服务器端(linux)代码:

# 如果是局域网内的linux作为服务器端执行该代码,注意先关闭防火墙
from socket import *
serverPort = 12001
serverSocket = socket(AF_INET,SOCK_DGRAM)
serverSocket.bind(('',serverPort)) #注意bind方法括号内为一个元组,引号默认表示为127.0.0.1,即监听本地端口
print('ready')
while True:
 message,clientAddress = serverSocket.recvfrom(2048)  #接收客户端发来的消息
 print(message)

    serverSocket.sendto('have received'.encode(),clientAddress)        #使用socket时,只能以字节形式传送,故需要encode()

上述代码参考《计算机网络自顶向下方法》,代码很简洁,而且基本上能满足需求。

值得强调的一点是,在实现上述代码时,建议先在本机(即在windows上跑上面两个脚本),成功了以后再把serverName从'127.0.0.1' 变为 '局域网内服务器端IP'。

而且在linux端实现服务器端代码时,一定要先关闭防火墙!凡是涉及到局域网内linux与其它主机通信的都要考虑防火墙的问题,比如ftp之类!(这一点对于小白来讲怎样强调都不为过,虽然我之前知道也这一点,但是这次在运行该代码时,再次犯了这样的错误,找原因也浪费了挺长时间,最后想起是防火墙的原因又懊恼不已,怀着悲伤的心情写下了这个小结)

总结

以上所述是小编给大家介绍的局域网内python socket实现windows与linux间的消息传送,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
python 实现一次性在文件中写入多行的方法
Jan 28 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
Jan 29 Python
Python3.5文件修改操作实例分析
May 01 Python
Python实现微信小程序支付功能
Jul 25 Python
python将unicode和str互相转化的实现
May 11 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
python os.rename实例用法详解
Dec 06 Python
python定时按日期备份MySQL数据并压缩
Apr 19 #Python
Python实现 版本号对比功能的实例代码
Apr 18 #Python
Python网络爬虫之爬取微博热搜
Apr 18 #Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 #Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 #Python
Python面向对象总结及类与正则表达式详解
Apr 18 #Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 #Python
You might like
main.php
2006/12/09 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
puppeteer库入门初探
2019/01/09 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
python函数的万能参数传参详解
2019/07/26 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
Hotels.com越南:酒店预订
2019/10/29 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
签约仪式主持词
2014/03/19 职场文书
超市开店计划书
2014/04/26 职场文书
英语故事演讲稿
2014/04/29 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
酒会邀请函
2015/01/31 职场文书
网聊搭讪开场白
2015/05/28 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技