本机服务端
import socket

# 获取到socket
sk = socket.socket()

# 获取到地址  ip 和 端口号
address = ('127.0.0.1', 8001)

# 绑定 地址
sk.bind(address)

# 设置 client端的 连接、排队 人数
sk.listen(3)

print('server waiting...')

while True:
    # 阻塞  等待 client连接server
    conn, address = sk.accept()
    print(address)

# 发送数据到client端
    while True:
        # 接收 client端的 数据
        client_data = conn.recv(1024)
        print(str(client_data, "utf8"))

        if not client_data: break

        inp = input('>>>')
        conn.send(bytes(inp, encoding="utf-8"))
# conn.sendall(bytes('服务器关闭', encoding="utf-8"))

conn.close()  # 该客户关闭
# sk.close()  # 服务器关闭 , 此通道不会关闭
跨电脑服务端
import subprocess
import socket

# 获取到socket
sk = socket.socket()

# 获取到地址  ip 和 端口号
address = ('127.0.0.1', 8001)

# 绑定 地址
sk.bind(address)

# 设置 client端的 连接、排队 人数
sk.listen(3)

print('server waiting...')

while True:
    # 阻塞  等待 client连接server
    conn, address = sk.accept()
    print(address)

    # 发送数据到client端
    while True:
        # 接收 client端的 数据
        try:
            client_data = conn.recv(1024)
        except Exception as e:
            break

        # 判断数据是够是空
        if not client_data: break

        print(str(client_data, "utf8"))

        # 获取到结果
        obj = subprocess.Popen(str(client_data, 'utf8'), shell=True, stdout=subprocess.PIPE)
        # 将结果读取出来
        cmd_result = obj.stdout.read()

        result_len = bytes(str(len(cmd_result)), 'utf8')
        conn.sendall(result_len)  # 粘包问题
        conn.recv(1024) # 隔断,解决粘包方法
        # 发送数据到client端
        conn.sendall(cmd_result)

conn.close()  # 该客户关闭
# sk.close()  # 服务器关闭 , 此通道不会关闭

 

做自己的太阳,成为别人的光!