服务端:

import socket
import subprocess

phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.bind(('127.0.0.1', 8081))
print('等待客户端连接...')
phone.listen(5)
while True:
    conn, address = phone.accept()
    print(f'客户端:{address}')
    try:
        while True:
            msg = conn.recv(1024)
            if len(msg) == 0:
                break
            print(f'客户端消息:{msg.decode("UTF-8")}')
            res = subprocess.Popen(msg.decode("UTF-8"))
            res = res.stdout.read().decode('gbk')
            if res:
                conn.send(res.encode('UTF-8'))
            else:
                conn.send('没有数据'.encode('UTF-8'))
    except Exception:
        conn.close()

客户端:

import socket

phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

phone.connect(('127.0.0.1', 8081))

while True:
    msg = input("请输入要传的内容(按q退出):").strip()
    if msg.lower() == 'q':
        break
    if len(msg) == 0:
        continue
    phone.send(msg.encode('UTF-8'))
    msg = phone.recv(4096)
    print(f'{msg.decode("UTF-8")}')

phone.close()

2.明天上午默写

TCP 三次握手

作业 —— day36

作业 —— day36

TCP四次挥手

作业 —— day36

作业 —— day36

加上通信循环 与 链接循环之后的 TCP通信代码

# 服务端

import socket

phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

phone.bind(('127.0.0.1', 8080))

phone.listen(5)  # 5指的是半连接池的大小
print('服务端启动完成,监听地址为:%s:%s' % ('127.0.0.1', 8080))

while True:
    conn, client_addr = phone.accept()

    while True:
        try:
            data = conn.recv(1024) 
            if len(data) == 0:
                break
            print("客户端发来的消息:", data.decode('utf-8'))
            conn.send(data.upper())
        except Exception:
            break

    conn.close()

phone.close()
# 客户端

import socket

phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

phone.connect(('127.0.0.1', 8080))

while True:
    msg = input("输入要发送的消息>>>: ").strip()  # msg=''
    if len(msg) == 0: continue
    phone.send(msg.encode('utf-8'))
    print('======?')
    data = phone.recv(1024)
    print(data.decode('utf-8'))

phone.close()

相关文章:

  • 2021-11-23
  • 2021-07-31
  • 2022-02-01
  • 2022-01-28
  • 2021-06-01
  • 2022-01-20
  • 2021-08-13
  • 2022-12-23
猜你喜欢
  • 2021-04-26
  • 2022-12-23
  • 2021-11-10
  • 2021-12-26
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案