美文网首页呆鸟的Python数据分析
Python---Socket远程系统命令

Python---Socket远程系统命令

作者: 幼姿沫 | 来源:发表于2020-04-17 00:18 被阅读0次

    一 * * socket 五层模型里面应用层传输层里面的一组接口 两端通过通信的时候,两个端点有两个socket  模块 引用模块实现通信

    1.应用层HTTP/HTTPS python代码 封装之后                                   

      传输层  TCP/UDP协议端口                      调用socket模块之后                                 

    网络层识别的时候用ip地址端口号               元组里面的IP地址和端口号                                   

    数据链路层ARP/MAC                                 接收连接和地址

    物理层    硬件                                                接收发送信息 并且进行关闭

    tcp是传输控制      字节流 面向连接 安全可靠 速度慢 相对于UDP一对一

    udp是一种用户数据报 ,发送消息不需要链接,速度快       一对多

    二    *     *    TCP代码实现步骤

    1.基于TCP实现socket server服务端


    1.创建套接字sk=socket.socket()

    2.绑定ip地址和端口号 sk.bind(“127.0.0.1”,9000)

    3.监听数量listen(3)

    4.等待客户端链接 三次握手建立连接 coon,addr=sk.accept()

    5.send,recv服务端先发送再接受  再网络端先接受再发送

    6.客户端断开连接 四次挥手 断开链接

    7.断开套接字  关闭

    2.基于TCP的client端


    1.创建套接字

    2.找到服务端 connect方法 ip 和 端口号连接服务器

    3.recv/send

    4.断开套接字

    三  *   *  UDP的代码实现  没有建立连接

    1.基于UDP实现socket server服务端


    1.创建套接字sk=socket.socket()

    2.绑定bind  ip  和  端口号

    3.服务器端先接受信息recvfrom 之后再发送信息sendto

    4.最后关闭套接字

    2.基于udp 实现 client


    1.创建套接字

    2.sendto /recvfrom

    3.关闭套接字

    3.远程套接字字符解码


    popen_server代码演示

    popen_client代码演示

    4.异步 套接字  基于TCP


    asy_tcp_server

    import socket

    from multiprocessingimport Process

    def fun(conn):

    while True:

    conn.send(b"hello")

    # 接收发过来的对象

            ret = conn.recv(1024)

    print(ret.decode("utf-8"))

    # 进行关闭

        conn.close()

    if __name__ =='__main__':

    #创建套接字 绑定端口号和ip地址

        sk=socket.socket()

    sk.bind(("127.0.0.1",9000))

    #监听数量 是否有数据连接

        sk.listen(3)

    #元组结果 客户端和地址 连接数据 三次握手

        while True:

    conn,addr=sk.accept()

    #开启子进程进行执行

            p=Process(target=fun,args=(conn,))

    #发送信息聊天时循环不间断

            p.start()

    sk.close()

    asy_tcp_client

    import socket

    #创建套接字 得到对象链接connect前面的ip地址

    sk=socket.socket()

    sk.connect(("127.0.0.1",9000))

    #开始收发消息循环聊天

    while True:

    ret=sk.recv(1024)

    print(ret)

    #二进制bytes 发送消息之后关闭

        s=input(">>>>>")

    sk.send(s.encode("utf-8"))

    sk.close()

    相关文章

      网友评论

        本文标题:Python---Socket远程系统命令

        本文链接:https://www.haomeiwen.com/subject/gdljvhtx.html