python - Python socket.send() 在 if 语句中不起作用
问题描述
我尝试编写一个简单的控制台菜单,如果我按 1 等,它将字符串“screenshot”发送到客户端。现在,当我按 1 时它会停止工作,如果我按Ctrl+C它只会发送空字节(b'')。
这是我的服务器:
import socket
s = socket.socket()
print ("Socket successfully created")
port = 2345
host = '0.0.0.0'
print ("socket binded to %s" %(port))
s.listen(5)
print ("socket is listening")
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((host, port))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
choice = input('Choice: ')
if choice == 1:
conn.sendall("screenshot")
s.close()
break
这里是客户:
import socket
s = socket.socket()
port = 2345
host = 'xxx.xx.xx.xxx'
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
data = s.recv(1024)
print('Received', data)
接下来我可以尝试什么?
解决方案
推荐阅读
- python - Kivy VideoPlayer 加载纹理
- google-compute-engine - 无法删除虚拟机实例
- reactjs - React 管理树层次结构和折叠按钮不出现
- javascript - 如何用两边的文字锚定我的滑块?
- java - Spring Boot @OneToMany 映射
- flutter - 声明一个或多个自定义主题
- javascript - 在 Javascript 中为 vuetify.js v-select 设置值未显示在 UI 中
- database - 我无法使用 Laravel 动态迁移
- sorting - 在 GPU 上实现的最佳排序算法是什么
- rx-java - 可完成和f然后在它之前的操作之前执行