首页 > 其他 > 详细

这是网络编程的一小步,却是我的一大步

时间:2019-10-17 20:28:24      阅读:45      评论:0      收藏:0      [点我收藏+]

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

首先是三次握手:

? 1首先客户端发送了一个请求给服务端

? 2服务端处于接收状态,且接受到了请求,因此返回了一个确认给客户端,同时也发送了一个请求给服务端

? 3客户端收到了确认和请求,于是二者开始正式建交

四次挥手:

? 1.客户端发了一个掐断连接的请求给服务器

? 2.服务器接受到了请求,并确认是否还有未执行的任务,无论执行多少倍都会传给客户端

? 3.服务器进入关闭等待状态

? 4.客户端也进入time_wait状态,可以使其再内存中消散

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

服务端

import subprocess
import re
import socket
server=socket.socket()

server.bind(
    ('127.0.0.1',9527)#用于寻找服务端
)
server.listen(0)#只有一个人能上我


conn,addr=server.accept()
print(addr)

while True:
    try:
        data=conn.recv(1024).decode('utf8')
        print(data)
        # back_list=[]
        back=subprocess.check_output(data,shell=True)
        buck=back.strip()
        # back_list.append(back.split)
        # back=back.strip()
        print(buck)


    except Exception as e:
        print(e)
        break
conn.close()

客户端

import subprocess
import socket
client=socket.socket()

client.connect(
    ('127.0.0.1',9527)#用于寻找服务端
)
while True:
    send_msg=input('输入命令给服务器:')
    client.send(send_msg.encode('utf8'))
    if send_msg=='q':
        break
    data=client.recv(1024).decode('utf8')
    print(data)
client.close()

这是网络编程的一小步,却是我的一大步

原文:https://www.cnblogs.com/jimGraymane/p/11694421.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!