• 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)
  • 相关阅读:
    11.组件-组件中的data和methods
    09.组件-创建组件的方式2
    10.组件-创建组件的方式3
    07.动画-列表动画
    08.组件-创建组件的方式1
    关于苹果iBeacon官方文档解析
    IOS-代码书写规范
    IOS- 1970ms时间计算
    关于tableview顶部留白问题
    IOS-网络请求数据解析道数组程序崩溃问题
  • 原文地址:https://www.cnblogs.com/zfquan/p/7478190.html
Copyright © 2020-2023  润新知