如何检查是否从客户端接收到字节?
How to check if bytes are received from the client?
我正在制作一个聊天界面,目前,服务器必须先发送消息才能进行聊天。
如果客户端先发送消息,那么在服务器向客户端发送消息之前,服务器看不到该消息。
我的问题:
- 我如何检查客户是否给我发送了任何东西?然后我可以简单地打印出来。
这是服务器代码:
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(("", 8080))
serv.listen(5)
while True:
c, addr = serv.accept()
print("Connection recieved from", addr)
while True:
strig = str(input("Enter your message to the client: "))
c.send(strig.encode())
thing = c.recv(1024)
message = list(str(thing))
message.remove("b")
printable = ""
for item in message:
printable += item
print(printable)
strig = str(input("Enter your message to the client: "))
c.send(strig.encode())
thing = c.recv(1024)
message = list(str(thing))
message.remove("b")
printable = ""
for item in message:
printable += item
print(printable)
这是客户端代码:
from time import sleep
s = socket.socket()
port = 8080
s.connect(("10.0.0.92", port))
while True:
thing = str(s.recv(1024))
message = list(thing)
message.remove("b")
#message.remove("/")
printable = ""
for item in message:
printable += item
print(printable)
your = str(input("Enter your message to the server: "))
s.send(your.encode())
thing = str(s.recv(1024))
message = list(thing)
message.remove("b")
#message.remove("/")
printable = ""
for item in message:
printable += item
print(printable)
your = str(input("Enter your message to the server: "))
s.send(your.encode())
提前致谢!!
p.s。我要一个人做服务器,一个人做客户端。请不要告诉我让两个人都成为客户。
您的服务器是单线程的。 input
等待输入,因此在没有用户输入的情况下永远不会到达 recv
。创建一个线程来读取客户端输入和一个线程来请求和发送消息。您在客户端需要类似的东西。
我正在制作一个聊天界面,目前,服务器必须先发送消息才能进行聊天。
如果客户端先发送消息,那么在服务器向客户端发送消息之前,服务器看不到该消息。
我的问题:
- 我如何检查客户是否给我发送了任何东西?然后我可以简单地打印出来。
这是服务器代码:
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(("", 8080))
serv.listen(5)
while True:
c, addr = serv.accept()
print("Connection recieved from", addr)
while True:
strig = str(input("Enter your message to the client: "))
c.send(strig.encode())
thing = c.recv(1024)
message = list(str(thing))
message.remove("b")
printable = ""
for item in message:
printable += item
print(printable)
strig = str(input("Enter your message to the client: "))
c.send(strig.encode())
thing = c.recv(1024)
message = list(str(thing))
message.remove("b")
printable = ""
for item in message:
printable += item
print(printable)
这是客户端代码:
from time import sleep
s = socket.socket()
port = 8080
s.connect(("10.0.0.92", port))
while True:
thing = str(s.recv(1024))
message = list(thing)
message.remove("b")
#message.remove("/")
printable = ""
for item in message:
printable += item
print(printable)
your = str(input("Enter your message to the server: "))
s.send(your.encode())
thing = str(s.recv(1024))
message = list(thing)
message.remove("b")
#message.remove("/")
printable = ""
for item in message:
printable += item
print(printable)
your = str(input("Enter your message to the server: "))
s.send(your.encode())
提前致谢!!
p.s。我要一个人做服务器,一个人做客户端。请不要告诉我让两个人都成为客户。
您的服务器是单线程的。 input
等待输入,因此在没有用户输入的情况下永远不会到达 recv
。创建一个线程来读取客户端输入和一个线程来请求和发送消息。您在客户端需要类似的东西。