zoukankan      html  css  js  c++  java
  • python socket网络编程

    import socket
    clim=socket.socket()
    clim.connect(("localhost",6969))
    while True:
        thing=input(">>>>")
        clim.send(thing.encode("utf-8"))
        date = clim.recv(1024)
        print("reac:",date)
    clim.close()
    import socket
    server=socket.socket()
    server.bind(("localhost",6968))
    server.listen()
    while True:
        conn,addr=server.accept()
        while True:
            data=conn.recv(1024)
            print(data)
            msg=input("跟对方说什么:")
            #server.send(msg.encode("utf-8"))#这样写法是错的
            conn.send(msg.encode("utf-8"))
    
    
    # server虽然是服务器对应的socket套接字,但其实际上没有connect任何的端,因而使用server.recv就会出现错误,
    # 因为服务器的套接字对象只是listen了指定端口,而连接上可以供使用的套接字是server.accept()以后返回的套接字
    # ,这是连接到服务器指定端口的套接字,因而可以用以通信

    情况二:传输文件

    import socket
    clim=socket.socket()
    clim.connect(("localhost",6969))
    f=open("注册码.txt","wb")
    while True:
        thing=input(">>>>")
        clim.send(thing.encode("utf-8"))
        date = clim.recv(1024)
        print("reac:",date)
        f.write(date)
        f.flush()
    clim.close()
    import socket
    import os
    server=socket.socket()
    server.bind(("localhost",6969))
    server.listen()
    while True:
        conn,addr=server.accept()
        while True:
            data=conn.recv(1024)
            print(data)
            #os.popen(data)
            f=open("D:BaiduNetdiskDownloadpythonPyCharm2017.X专业版注册码.txt")
            #server.send(msg.encode("utf-8"))
            data=f.read()
            conn.send(data.encode("utf-8"))

    情况三:实现对服务器端的系统操作

    import socket
    client=socket.socket()
    client.connect(("localhost",6969))
    while True:
        thing=input(">>>>")
        client.send(thing.encode("utf-8"))
        date = client.recv(1024)
        print("reac:",date)
    clim.close()
    import socket
    import os
    server=socket.socket()
    server.bind(("localhost",6969))
    server.listen()
    while True:
        conn,addr=server.accept()
        while True:
            data=conn.recv(1024)
            print(data)
            res=os.popen(data)
            # os.popen(command[, mode[, bufsize]])执行系统命令,执行结果写到一个临时文件里面,返回值是这个打开的文件对象。mode默认值为r,即默认以只读方式打开文件;
            # buffersize默认是系统缓冲区大小(buffer缓冲,此概念适用于磁盘写数据;cache缓存,此概念适用于磁盘读数据)。
            #
            # 既然返回的是一个文件对象,那么接下来可以理解os.popen().read(),是把这个文件对象中的内容读出来,
            # 返回值就是文件中的内容。
            conn.send(res)
  • 相关阅读:
    js json与字符串相互转换
    Web 加入favicon
    JS 深拷贝
    C# 读取配置文件
    设计模式之抽象工厂模式
    设计模式之工厂方法的隐藏
    设计模式之工厂方法的重载
    设计模式之工厂方法配置文件与反射
    C#设计模式之工厂方法模式
    jq解析json文件
  • 原文地址:https://www.cnblogs.com/zfquan/p/7478190.html
Copyright © 2011-2022 走看看