使用 python 3.6 和 Vmware WorkStation 构建一个小型虚拟局域网通讯程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用 python 3.6 和 Vmware WorkStation 构建一个小型虚拟局域网通讯程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1747字,纯文字阅读大概需要3分钟。
内容图文
1、测试环境:
宿主机系统:win10、python 3.5
虚拟机系统:win7 64位、python 3.6、Vmware WorkStation 12
2、在【虚拟网络编辑器】中不需要做任何改变,既不需要勾选【桥接模式】也不需要勾选【NAT模式】,也不需要设置【DHCP】,即可实现宿主机和虚拟机的局域网组建;
3、使宿主机作为服务端,代码如下:
import socket s = socket.socket() s.bind((‘192.168.136.1‘, 1234)) s.listen(5) while True: c,addr = s.accept() c.send(b‘Thank you for connecting‘) c.close()
注意:
1)s.accept() 返回一个元组 (c, addr),c是一个客户端套接字,addr是一个地址,使用 c 发送数据和关闭 socket;
2)在 c.send 中使用前缀 b 将字符串转换为byte类型
4、使虚拟机作为客户端,代码如下:
import socket s = socket.socket() s.connect((‘192.168.136.1‘,1234)) print(s.recv(1024))
执行客户端代码后,获取字符串 b‘Thank you for connecting‘
附:python 中的 socket 原理。在 python 中的大多数网络编程都隐藏了socket模块的基本细节,不直接和套接字交互。套接字包括两个:服务端和客户端。在创建一个服务端套接字后,让它等待连接。这样它就在某个网络地址处(IP地址和一个端口号的组合)监听,直到客户端套接字连接。连接完成后,两者就可以交互了。
处理客户端套接字通常比处理服务器端套接字容易,因为服务端必须准备随时处理客户端的连接,同时还要处理多个连接,而客户端只是简单地连接,完成事务,断开连接。(为了简便,使用 socketServer 类族和 Twisted 框架来处理服务端编程)
一个套接字就是 socket 模块中的socket类的一个实例。它的实例化需要3个参数:第1个参数是地址族(默认是socket.AF_INET);第2个参数是流(socket.SOCK_STREAM,默认值)或数据报(socket.SOCK_DGRAM)套接字;第3个参数是使用的协议(默认是0,使用默认值即可)。对于一个普通的套接字,不需要提供任何参数。
服务端套接字使用 bind 方法后,再调用 listen 方法去监听某个特定地址。客户端套接字使用 connect 方法连接到服务端,在 connect 方法中使用的地址与服务端在 bind 方法中的地址相同(在服务端,能实现很多功能,比如使用函数 socket.gethostname 得到当前主机名)。在这种情况下,一个地址就是一个格式为 (host, port) 的元组,其中 host 是主机名(比如 ‘192.168.136.1‘ ),port 是端口号(一个整数)。listen 方法就是一个参数,即服务端未处理的连接长度(即允许排队等待的连接数目,这些连接在禁用之前等待)。
服务端套接字开始监听后,它就可以接受客户端的连接。这个步骤使用 accept 方法来完成。这个方法会阻塞(等待)直到客户端连接,然后就返回一个格式为 (client, address) 的元组,client 是一个客户端套接字, address 是一个地址。服务端在处理完与该客户端的连接后,再次调用 accept 方法开始等待下一个连接。这个过程通常都是在一个无限循环中实现的。
套接字有两个方法:send 和 recv ,用于传输和接收数据。可以使用字符串参数调用 send 以发送数据,用一个所需的最大字节数做参数调用 recv 来接收数据。如果不能确定使用哪个数字,那么 1024 是个很好的选择。
原文:https://www.cnblogs.com/swingingmace/p/8379994.html
内容总结
以上是互联网集市为您收集整理的使用 python 3.6 和 Vmware WorkStation 构建一个小型虚拟局域网通讯程序全部内容,希望文章能够帮你解决使用 python 3.6 和 Vmware WorkStation 构建一个小型虚拟局域网通讯程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。