HTTP и сокеты: - PullRequest
       2

HTTP и сокеты:

2 голосов
/ 18 апреля 2011

Я кодировал приложение на Java для моего телефона Android, которое использует сокетное соединение для отправки и получения текстовых данных, что работает хорошо, оно использует PrintWriter и BufferedReader В процессе было сказано об использовании HTTP-соединения.Я надеюсь воспользоваться этой возможностью, чтобы установить, где HTTP будет отличаться от сокетов, поэтому я надеюсь, что вы можете помочь мне со следующим:

1) Я создаю соединение через сокет, используя следующую

Сторона сервера:

serverSocket = new ServerSocket(4444);

на стороне клиента:

clientSocket = new Socket(address, portNumber);

Итак, каков будет HTTP-эквивалент на стороне клиента и сервера?

2) Чтобы отправить данные с клиента на сервер, я делаю следующее:

pw = new PrintWriter(clientSocket.getOutputStream(),true);

    pw.write(AStringVariableInThisCase+"\n"); 
    pw.flush();

Как правильно будет работать HTTP-соединение?

3)Чтобы получить данные, отправленные с клиента, на стороне сервера я делаю следующее:

   BufferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
   String language = br.readLine();

Что будет эквивалентно использованию соединения HTTP?

Разработанная мной программа позволяет данныедля передачи туда и обратно с сервером, использующим собственный набор классов, и продолжает это делать, используя для этого PrintWriter и BuferedReader.

Спасибо за любую помощь, вы можете внести свой вклад в выявление различий.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

HTTP - это протокол .Он (обычно) используется через сокет.

Java предоставляет класс HttpUrlConnection для удобного способа использования HTTP через сокет.

0 голосов
/ 18 апреля 2011

Основным отличием является то, что HTTP структурирован как транзакция, а не как соединение.Клиентская сторона транзакции должна предоставлять заголовки с определенным форматом и информацией, и ответ будет начинаться с некоторых строк заголовка.HTTP обычно закрывает соединение после завершения одной транзакции.

...