python - 如何连续接收数据?
问题描述
我在 Python 中创建了一个非常简单的 tcp 服务器。我连接,然后服务器等待客户端发送数据,然后客户端等待发回数据。当每个人都在等待时,他们无法发送数据。所以一方不能背靠背发送两条消息。我想让双方都听,并且仍然可以随时发送。我该怎么做?服务器代码:
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((ipAddr, port))
print('Server starting on ' + ipAddr + ':' + str(port))
socket.listen(10)
print('Waiting for connection...')
c, addr = socket.accept()
print('Connection recieved from ' + str(addr))
while True:
try:
buf = c.recv(1024)
if buf == 'stop':
break
elif len(buf) > 0:
print(buf)
response = input('>')
c.sendall(str.encode(str(response)))
except:
print('Error')
break
socket.close()
我希望能够从服务器向客户端发送背靠背消息,同时仍然监听来自客户端的响应
解决方案
而真:#receiving
client,add=server.accept()
data = client.recv(1024)
str = data.decode('ascii')
print("client is saying: ",str)
#sending
msg = input("server:")
a= msg.encode('ascii')
client.send(a)
推荐阅读
- java - 为什么 List.contains(Object) 的行为不同?
- r - 如何在同一个数据帧上做colsum和average
- powerbi - 使用 DAX 生成日期系列
- javascript - 仅在服务器上需要一个包
- java - Intellij IDEA 仅针对所有未提交的更改运行测试
- regex - 在换行符之前匹配字符,不包括空格?
- macos - MacOS - 使用带有launchd的脚本 - 启动,登录,注销,关闭?
- service-worker - Workbox 的服务人员在更改时未更新
- python - AllenNLP 共指分辨率的多 GPU 训练
- reactjs - 事件处理程序中带有 [name] 的 PrevState