Я пишу часть программного обеспечения, и я не могу использовать сокет для подключения к Java-приложению с помощью ServerSocket.
Я подумал, что попробую с URL-соединением, так как можно определить, к какому порту подключаться
например:
127.0.0.1:62666
У меня есть серверное приложение, которое прослушивает соединения и записывает входные данные в jTextArea. При подключении к серверу (127.0.0.1:62666) через браузер выводит:
GET / HTTP/1.1
GET /favicon.ico HTTP/1.1
У меня есть другое приложение для подключения к ServerSocket через соединение URL:
try{
URL url = new URL("http://127.0.0.1:62666");
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
connection.connect();
PrintWriter writer = new PrintWriter(connection.getOutputStream());
writer.print("Hello");
System.out.println("should have worked");
writer.flush();
writer.close();
}catch(IOException e){
e.printStackTrace();
}
Распечатывает сообщение «должно было сработать», но ничего не записывает в jTextArea сервера. Код для серверного приложения выглядит следующим образом:
try{
ServerSocket serverSock = new ServerSocket(62666);
while(doRun){
Socket sock = serverSock.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));
PrintWriter writer = new PrintWriter(sock.getOutputStream());
InfoReader.gui.writeToTextArea(reader.readLine() + " From IP: " + sock.getInetAddress() + "\n");
writer.println("Testing123");
writer.close();
reader.close();
}
}catch(IOException e){
e.printStackTrace();
}
Примечание: при подключении через браузер отображается текст «Testing123».
Поэтому мне интересно, как это сделать так, как я пытаюсь или, возможно, прочитать URL-адрес, через который был получен доступ к ServerSocket, чтобы я мог получить к нему доступ через URL-адрес при передаче его аргументов (в URL-адресе).
Надеюсь, это имеет смысл:)
Спасибо,
Майк.