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)
  • 相关阅读:
    【转载】区间DP
    基础DP的一些知识总结(未完成)
    POJ2718 递归套递归
    Hadoop Illuminated——Chapter4 BigData
    Hadoop Illuminated——Chapter3 Why do I Need Hadoop?
    一条SQL语句是怎么执行的
    Github 《算法竞赛进阶指南》资源
    Hadoop——搭建Hadoop的全分布模式
    Hadoop——免密码登陆的原理和配置
    洛谷——排序P1781宇宙总统
  • 原文地址:https://www.cnblogs.com/zfquan/p/7478190.html
Copyright © 2011-2022 走看看