У меня есть простой веб-сервер и 1 простая веб-страница index.html, содержащая только 1 элемент изображения для отправки веб-клиенту.У меня есть веб-браузер Chrome, работающий на Android Позвоните, чтобы получить эту веб-страницу с этого веб-сервера.
У меня проблема.
Код веб-сервера может получить первое сообщение запроса, отправленное из Интернета. клиент, но не второй.
Когда веб-клиент отправляет первый запрос, код веб-сервера может распечатать запрос. Этот средний метод Recv() хорош. Я имею в виду, что метод Recv() может получить первый запрос этого веб-клиента, а также веб-сервер может отправить первый ответ обратно этому веб-клиенту с байтами веб-страницы index.html, но не с байтами изображения, потому что байты изображения будут отправлены этим веб-сервер после того, как этот веб-клиент отправил второй запрос, как я объясню ниже.
Но когда веб-клиент отправил второй запрос на веб-сервер, чтобы получить изображение этой веб-страницы в том виде, в каком оно есть в Интернете. клиент должен сделать, чтобы получить полную веб-страницу, код веб-сервера блокируется или навсегда зависает в инструкции Recv(), не получая второй запрос от этого веб-клиента. С другой стороны, Wireshark перехватил второй запрос от этого веб-клиента. Это означает, что веб-клиент действительно отправил второй запрос на компьютер веб-сервера, и он прибыл на компьютер веб-сервера. Но почему функция Recv() не может получить второй запрос? Почему функция Recv() может получить только первый запрос от этого веб-клиента?
Почему это происходит и что не так?
Спасибо.< /p>
Это очень простой код моего веб-сервера:
The a download attribute
Click on the image to download it:
[url=w3logo.jpg]
[img]w3logo.jpg[/img]
[/url]
Notice that the filename of the downloaded file will be saved as "w3logo.jpg" instead of "myw3schoolsimage.jpg".
Note:[/b] The download attribute is not supported in IE or Edge (prior version 18), or in Safari (prior version 10.1).
У меня есть простой веб-сервер и 1 простая веб-страница index.html, содержащая только 1 элемент изображения для отправки веб-клиенту.[b]У меня есть веб-браузер Chrome, работающий на Android Позвоните, чтобы получить эту веб-страницу с этого веб-сервера. У меня проблема. Код веб-сервера может получить первое сообщение запроса, отправленное из Интернета. клиент, но не второй. Когда веб-клиент отправляет первый запрос, код веб-сервера может распечатать запрос. Этот средний метод Recv() хорош. Я имею в виду, что метод Recv() может получить первый запрос этого веб-клиента, а также веб-сервер может отправить первый ответ обратно этому веб-клиенту с байтами веб-страницы index.html, но не с байтами изображения, потому что байты изображения будут отправлены этим веб-сервер после того, как этот веб-клиент отправил второй запрос, как я объясню ниже. Но когда веб-клиент отправил второй запрос на веб-сервер, чтобы получить изображение этой веб-страницы в том виде, в каком оно есть в Интернете. клиент должен сделать, чтобы получить полную веб-страницу, код веб-сервера блокируется или навсегда зависает в инструкции Recv(), не получая второй запрос от этого веб-клиента. С другой стороны, Wireshark перехватил второй запрос от этого веб-клиента. Это означает, что веб-клиент действительно отправил второй запрос на компьютер веб-сервера, и он прибыл на компьютер веб-сервера. Но почему функция Recv() не может получить второй запрос? Почему функция Recv() может получить только первый запрос от этого веб-клиента? Почему это происходит и что не так? Спасибо.< /p> Это очень простой код моего веб-сервера: [code] import socket
HOST = '192.168.43.157' PORT = 80
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print('# Socket created') # Create socket on port try: s.bind((HOST, PORT)) except socket.error as msg: print('# Bind failed. ') sys.exit()
print('# Socket bind complete')
# Start listening on socket s.listen(10) print('# Socket now listening')