做业1017

1.整理TCP三次握手、四次挥手图服务器

在知道三次握手四次挥手以前socket

首先须要知道什么是双向通道,通道是信息传输的所需的通路,双向通道就是两条这样的通路,每条负责不一样的事情,一条是客户端给服务端发送信息的,另外一条是服务端给客户端法信息的。code

其次,每次不管是客户端仍是服务端发送信息时,另外一端都要返回确认收到的信息server

三次握手指的是创建链接ip

创建链接就是创建双向通道的过程。开发

第一次握手:客户端向服务端发送链接请求,这样就创建了客户端向服务端的一条单向的通道input

第二次握手:服务端同时发送确认收到的信息和赞成链接的信息,第二条通道创建io

第三次握手:客户端向服务端确认收到信息import

2.基于TCP开发一款远程CMD程序
客户端链接服务器后,能够向服务器发送命令
服务器收到命令后执行,不管执行是否成功,不管执行几遍,都将执行结果返回给客户端
注意: 执行系统指令使用subprocess模块完成.cli

服务端

import socket
import subprocess

server = socket.socket()

server.bind(
('127.0.0.1',8000)
)

server.listen(5)

监听是否有消息

while True:
conn, addr = server.accept()
print(addr)
while True:
try:
data = conn.recv(1024).decode('gbk')
if data == 'q':
break
res = subprocess.check_output(data)

conn.send(res)

    except Exception as e:
        print(type(e))
        conn.send(str(e).encode('gbk'))

        print(e)
        continue
conn.close()

客户端

import socket

client = socket.socket()

client.connect(
('127.0.0.1',8000)
)

while True:
send_msg = input('请输入命令:')
client.send(send_msg.encode('gbk'))

if send_msg == 'q':
    break
    
data = client.recv(1024).decode('gbk')
print(data)

client.close()

'''
客户端运行结果

请输入命令:dsaf
[WinError 2] 系统找不到指定的文件。
请输入命令:ipconfig

Windows IP 配置

无线局域网适配器 WLAN:

媒体状态 . . . . . . . . . . . . : 媒体已断开链接
链接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地链接* 9:

媒体状态 . . . . . . . . . . . . : 媒体已断开链接
链接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地链接* 10:

媒体状态 . . . . . . . . . . . . : 媒体已断开链接 链接特定的 DNS 后缀 . . . . . . . : '''

相关文章
相关标签/搜索