2016-03-17 3 views
0

Если я делаю сокет-соединение из приложения, которое выполняется на сервере приложений, куда идут возвращенные данные? Нужно ли создавать сокет принимающего сервера в приложении с указанным портом или он получен в порту, на котором сервер использует соединение с приложением, и мне просто нужно написать что-то, что будет извлекать эти данные?Получение данных на сервере приложений?

ответ

0

Вот код для чтения из сокета. Вы делаете подключение сокета к порту 8080 на сервере. Вам не нужно беспокоиться о OS -> Server port.

public static void readSocket() throws IOException { 
    try (Socket s = new Socket(InetAddress.getByName(new URL("Some Address").getHost()), 8080); 
      BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()))) { 
     String line = null; 
     while ((line = input.readLine()) != null) { 
      System.out.println(line); 

     } 
    } 
} 
0

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

  1. Возвращаемые данные посылают к объекту сокета клиента, позволяет называть его clientSocket. Вам нужно позвонить clientSocket.getInputStream(), чтобы декодировать его.

  2. Нет, вам не нужно создавать сокет принимающего сервера в приложении. Ваша клиентская программа устанавливает соединение с сервером на вашем хосте и порту. clientSocket может отправлять данные на сервер и получать данные с сервера.

Например, код на стороне клиента:

private PrintWriter out = null; 
private BufferedReader in = null; 

public void listenSocket(){ 
//Create socket connection 
    try{ 
    clientSocket = new Socket(HOST, PORT); 

    // use out object to send data to server applicaiton 
    out = new PrintWriter(clientSocket.getOutputStream(), 
       true); 

    // uses in object to receive data from server application 
    in = new BufferedReader(new InputStreamReader(
       clientSocket.getInputStream())); 
    } catch (UnknownHostException e) { 
    System.out.println("Unknown host:" + HOST); 
    System.exit(1); 
    } catch (IOException e) { 
    System.out.println("No I/O"); 
    System.exit(1); 
    } 
} 
Смежные вопросы