Я пытаюсь создать собственный веб-сервер, и есть несколько вопросов о работе веб-серверов, которые мы используем сегодня. Вопросы:Реализация WebServer
- После получения HTTP-запроса от клиента через порт 80 сервер отвечает с использованием того же порта 80?
- Если да, то при отправке большого файла скажем, что в МБ, веб-сервер не сможет получать запросы от других клиентов?
- Является ли компьютерный порт двусторонним или симплексным? (Может ли он отправлять и получать в одно и то же время)?
- Если другой порт на стороне сервера используется для отправки ответа клиента, а затем (если TCP используются, который обычно используется), опять-таки 3-полосные рукопожатия будут сделаны, который будет над головой ...
Основное внимание уделяется порту на стороне сервера. Может ли этот порт отправлять ответ клиенту и одновременно прослушивать новые клиентские запросы? Если да, то программно, как? Если нет, то какой метод используется, чтобы избежать такой ситуации, когда сервер должен отправлять большие файлы (например, файл изображения) и одновременно быть легко доступными для входящих клиентских запросов ... –
Да, это возможно, и так, как это делается во всех socket API - это то, что сокет, используемый для приема соединений, отделен от сокетов, используемых для связи с клиентами. Я рекомендую вам найти учебник по сетевому программированию для вашего любимого языка программирования в вашей любимой операционной системе, так как он объяснит все это ... – Joni
Можете ли вы реализовать эту строку на c или Java-коде: «Сокет, используемый для приема соединений, является отдельным из сокетов, используемых для общения с клиентами ». ?. Потому что, когда я смотрю в любом учебнике на Java, это делается (как говорится) ServerSocket welcomeSocket = new ServerSocket (6789); while (true) { \t Соединительная розеткаSocket = welcomeSocket.accept(); Теперь, если я отслеживаю активность сети через tcpdump или netstat или открываю порты портов из nmap и т. Д. Он не показывает, что другой порт (кроме прослушивания onServer) используется для отправки данных клиенту. –