【发布时间】:2021-09-14 18:05:57
【问题描述】:
我正在 Kotlin 上编写一个使用 Python 后端服务器的应用程序,我似乎在将它们连接在一起时遇到了一些麻烦。
我在 python 上使用
from socket import socket, AF_INET, SOCK_STREAM
from threading import Thread
def handle_connection(c):
amount = int(c.recv(2048).decode("utf8"))
for i in range(amount):
print(c.recv(2048).decode("utf8"))
class FileReceiver:
def __init__(self):
self.socket = socket(AF_INET, SOCK_STREAM)
def run(self):
try:
self.socket.bind(('0.0.0.0', 7557))
self.socket.listen()
while True:
c, a = self.socket.accept()
thr = Thread(target=handle_connection, args=(c,))
thr.run()
except KeyboardInterrupt:
self.socket.detach()
self.socket.close()
fr = FileReceiver()
fr.run()
从客户端接收数据。 在 Kotlin 上我使用
val socket = Socket(server_ip, server_port)
val input = BufferedReader(InputStreamReader(socket.getInputStream()))
val out = PrintWriter(socket.getOutputStream())
out.write("10")
out.flush()
for (i in 1..10)
{
out.write("A")
out.flush()
}
发送数据。 使用此代码会导致服务器仅接收一条带有所有 A 的消息,但我试图让它在循环内的单独消息中接收所有这些消息。 我不是最好的程序员,因此将不胜感激有关此代码的任何帮助! 提前谢谢!
【问题讨论】:
标签: python kotlin synchronization client-server