局域网内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库在局域网内传输文件的方法
Jun 04 Python
python递归全排列实现方法
Aug 18 Python
让代码变得更易维护的7个Python库
Oct 09 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
用Python解决x的n次方问题
Feb 08 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
在django中查询获取数据,get, filter,all(),values()操作
Aug 09 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
Python matplotlib多个子图绘制整合
Apr 13 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
淘宝中秋节活动方案
2014/01/31 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
小学班主任自我评价
2015/03/11 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
使用python创建股票的时间序列可视化分析
2022/03/03 Python