局域网内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中break语句的用法
May 14 Python
批处理与python代码混合编程的方法
May 19 Python
详解Django 中是否使用时区的区别
Jun 14 Python
python爬取哈尔滨天气信息
Jul 14 Python
基于Python实现用户管理系统
Feb 26 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
python数据归一化及三种方法详解
Aug 06 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
pygame实现非图片按钮效果
Oct 29 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
基于vue实现分页效果
2017/11/06 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
Python中特殊函数集锦
2015/07/27 Python
Django卸载之后重新安装的方法
2017/03/15 Python
python版学生管理系统
2018/01/10 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
Keras 使用 Lambda层详解
2020/06/10 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
校园奶茶店创业计划书
2014/01/23 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
导游词之山海关
2019/12/10 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript