Могу ли я отправить информацию на сокет через URL?
Вот пример кода как реализован Server на Java. Подскажите пожалуйста относительно основного вопроса и реально ли это сделать?
package sample.server;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args)throws IOException {
Socket socket = new Socket("localhost", 7777);
System.out.println("Connected!");
Scanner scanner = new Scanner(System.in);
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
System.out.println("Sending string to the ServerSocket");
String message;
while (true){
message = scanner.nextLine();
dataOutputStream.writeUTF(message);
dataOutputStream.flush();
if(message.equals("disconnect")){
break;
}
}
dataOutputStream.close();
System.out.println("Closing socket and terminating program.");
socket.close();
}
}
Ответы (1 шт):
Уважаемый Евгений, ваш вопрос немного сбивает с толку.
Смотрите.
Пример, который вы привели - это пример серера, который использует так называемый TCP Socket. Это очень широко известная технология, про котрую есть хорошая книга, которую тут обсуждают в соседнем вопросе.
ТСР - отличный протокол, но он почти не накладывает никаких правил на отпарвляемые и получаемые данные: логика взаимодействия клиента и сервера может быть любой. В частности, я думаю, что если запустить приведенный в примере сервер, то подключиться к нему можно обычным telnet'ом, выполнив что то вроде telnet localhost 7777. И тогда после подключения сервер, как я понимаю, будет читать строки до перевода строки а потом посылать их обратно - что то вроде эхо - сервера.
Но делается это из telnet'а, а не из браузера.
Но как только в вопросе возникает слово URL - все мы, старые сетевые волки, делаем стойку, потому что от слова URL пахнет WEB-ом.
Потому, что URL - это universal resource locator, то есть, по русски говоря, "ссылка".
И это слово переводит ответ в область взаимодействия между HTTP серверами и клиентами. Вообще говоря, я немного лукавлю, потому что под понятие URL попадают также ftp - ссылки, но по большей части когда говорят про URL - говорят про HTTP севера.
А HTTP - это протокол более выского уровня, чем TCP, или, если говорить другими словами, это протокол, который использует TCP.
Теперь, когда у Вас есть перед глазами эта иерархия, вы можете уточнить свой вопрос.
И уточнение ожидается в таком плане: или "да, я имею в виду сокет, и слово URL здесь лишнее" или "да, я имею в виду именно URL, и слово сокет здесь лишнее".
Иначе - Ваш вопрос становится из технического скорее вопросом на угадывание ответа, потому что непонятно, что имеется в виду.