明霞山资源网 Design By www.htccd.com
基于TCP协议的套接字编程
实现电话沟通为例,这里传递的是字符,可以自己尝试去发送一个文件
# 服务端 import socket # 1. 符合TCP协议的手机 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # TCP # 2. 绑定手机号 一个服务器,我们自己的电脑作为服务器的话,用自己的IP地址 server.bind(('127.0.0.1',8000)) # 127.0.0.1 代表本地 # server.bind(('192.168.11.251',8000)) server.listen(5) # 半连接池 可以同时接收5个客户端 # 3. 等待客户端连接 print('start...') # 链接循环 while True: # 通信循环 conn,client_addr = server.accept() while True: try: # 4. 收到信息 receive data = conn.recv(1024) # 每次接收多少字节,如果改为10,客户端输入dir,(可以在cmd中输入 dir,看看会得到什么) ,会出现什么情况呢,下次的博客会讲到粘包问题,以及如何处理粘包问题 print(data) # 5. 回消息 conn.send(data.upper()) except ConnectionAbortedError: continue except ConnectionResetError: break
# 客户端1 import socket # 1. 创建符合TCP协议的手机 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 2. 拨号 client.connect(('127.0.0.1',8000)) while True: msg = input('please enter your msg') # dir # 3. 发送消息 client.send(msg.encode('utf8')) # 4. 接收消息 data = client.recv(1024) print(data)
# 客户端2 import socket # 1. 创建符合TCP协议的手机 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 2. 拨号 client.connect(('127.0.0.1',8000)) # msg = input('please enter your msg>') # 3. 发送消息 client.send('hello'.encode('utf8')) client.send('world'.encode('utf8')) # 4. 接收信息 data = client.recv(1024) print(data)
模拟ssh远程执行命令(linux系统)
# ssh服务端 import socket import subprocess server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.bind(('192.168.11.251',8000)) # 这是我的机子,客户端可以是其他人的机子 server.listen(5) print('start...') while True: conn,cient_addr = server.accept() print(client_addr) # 打印出的是其他人机子的IP while True: try: cmd = conn.recv(1024) # dir print(cmd) # 帮你执行cmd命令,然后把执行结果保存到管道里 pipeline = subprocess.Popen(cmd.decode('utf8'), shell = True, stderr = subprocess.PIPE, # std 标准 stdout = subprocess.PIPE) stderr = pipeline.stderr.read() stdout = pipeline.stdout.read() conn.send(stderr) conn.send(stdout) except ConnectionResetError: break
# ssh客户端 import socket # 1.创建符合TCP协议的手机 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 2. 拨号 client.connect(('192.168.11.210',8000)) while True: msg = input('please enter your msg') # dir # 3. 发送消息 client.send(msg.encode('utf8')) # 4. 接收消息 data = client.recv(10) print(data.decode('gbk')) # 在mac电脑上可能是'utf8'
学习最有效的方法一定是有输入,一定要输出,这样学的东西才能真正得有用
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。