局域网内python socket实现windows与linux间简单的消息传送
有个需求,就是在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时结束发送
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间简单的消息传送的更多相关文章
- socket在windows下和linux下的区别
原文:socket在windows下和linux下的区别 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h 错误处理:errno.h 2 ...
- 在windows 与Linux间实现文件传输(C++&C实现)
要实现windows与linux间的文件传输,可以通过socket网络编程来实现. 这次要实现的功能与<Windows下通过socket进行字符串和文件传输>中实现的功能相同,即客户端首先 ...
- Xshell在Windows和Linux间文件的上传和下载
本文通过lrzsz来实现Windows和Linux间文件间的文件传输. lrzsz使用 XMODEM.YMODEM 和 ZMODEM 文件传输协议来实现文件的上传和下载.相比 FTP 或者 WinSC ...
- windows和linux间互传文件
方法1:Xshell传输文件 用rz,sz命令在xshell传输文件 很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安 ...
- Python 一键同步windows和linux数据(基于pscp.exe)
outline 项目中需要把 windows server 上的数据同步到 linux server,方法很多,这里记录下自己采用的一种比较简单的方法. 准备工作 首先确保你 windows serv ...
- 企业内部在centos7.2系统中必杀技NTP时间服务器及内网服务器时间同步(windows和linux客户端同步)
网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议.NTP的用途是把计算机的时间同步到某些时间标准.目前采用的时间标准是世界协调时UTC(Unive ...
- 利用Synergy在局域网内让Ubuntu和Windows 7两台机器共用一套键鼠。
一个主机可以连接多个显示器, 方便自己使用, 但是这只是一个系统分屏显示, 如果想用两台不同系统的电脑, 并且还不想老是在两套键鼠之间来回转换, 那么建议你可以用Synergy软件来实现多台电脑之间的 ...
- 【转】windows和linux间共享互传文件
原文:http://blog.guorunmin.cn/2015/09/16/windows%E5%92%8Clinux%E9%97%B4%E5%85%B1%E4%BA%AB%E4%BA%92%E4% ...
- (原创)Windows和Linux间共享文件
方法一: Windows创建目录sharedir,修改共享属性,对everyone开放读写权限. Linux下运行命令:# mount -t cifs //192.168.8.55/sharedir ...
随机推荐
- Android Fragment重要函数
Fragment的常用函数: 一.Fragment对象 1.void setArguments(Bundle args); 这个函数为Fragment提供构造参数(也就是数据),参数以Bundle类型 ...
- spring boot(7)-mybatis全注解化
关于配置数据库可以参考上一篇文章,这里只讲mybatis pom.xml <!-- 引入mybatis --> <dependency> <groupId>org. ...
- c# webservice中访问http和https的wsdl,生成的配置节点的不同之处
http: https:
- zabbix启动报错:Connection to database 'xxx' failed解决方法
Zabbix 分布式系统监视系统 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通 ...
- 使用MDScratchImageView实现刮奖效果
使用MDScratchImageView实现刮奖效果 https://github.com/moqod/iOS-Scratch-n-See 最终效果: 其实这是使用了别人的东西而已:) 源码: // ...
- Http扫盲
https://www.kancloud.cn/kancloud/tealeaf-http/43832
- Exchange 2016证书配置
配置证书: 第一步,在ECP界面生成证书请求文件: 1.在“服务器 —>证书”界面,选择一台服务器,点击“+”来添加证书申请,如下图: 2.默认下一步, 3.填写证书的友好名称,如下图: 4.默 ...
- 十分钟带你学会Http协议和Tomcat服务器的原理
1. Http协议 1. 什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准 ...
- POJ | Boolean Expressions
总时间限制: 1000ms 内存限制: 65536kB 描述The objective of the program you are going to produce is to evaluate ...
- .net framework profiles /.net framework 配置
几年前一篇关于 .net framework client profile http://www.cnblogs.com/zzj8704/archive/2010/05/19/1739130.html ...