if(client_socket.recv(4) == b"TIME"):
client_socket.send(time.ctime().encode())
Это будет проверять первые 4 байта, полученные от сервера
elif(client_socket.recv(4) == b"NAME"):
client_socket.send(b"My name is Test Server!")
Это будет проверять следующие 4 байта, полученные от сервера. Вопреки тому, что вы предполагаете, он не будет проверять первые байты снова, так как вы вызвали recv
, чтобы прочитать больше байтов. Если байтов больше нет (вероятно, поскольку первые 4 байта уже прочитаны), он просто будет ждать. Вместо вызова recv
для каждого сравнения вы должны вызвать recv
один раз, а затем сравнить результат с различными строками.
Кроме того: recv
вернет только до заданное количество байтов. Это может также вернуть меньше.