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


    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()
    
  • 相关阅读:
    一:Storm集群环境搭建
    八:Zookeeper开源客户端Curator的api测试
    七:zooKeeper开源客户端ZkClient的api测试
    六:ZooKeeper的java客户端api的使用
    Redis(四):常用数据类型和命令
    Spring Cloud分布式微服务系统中利用redssion实现分布式锁
    @Controller和@RestController的区别?
    可伸缩系统架构探讨
    可扩展架构系统的探讨
    @ExceptionHandler异常统一处理
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11694421.html
Copyright © 2020-2023  润新知