2013-11-15 6 views
2

Это мой код для Socket программирования ...JAVA Разъем Programing бесконечный цикл

import java.io.*; 
import java.net.*; 

public class EchoClient 
{ 
    public static void main(String[] args) 
    { 
     try 
     { 
      Socket s = new Socket("127.0.0.1",9999); 
      BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream())); 
      PrintWriter w = new PrintWriter(s.getOutputStream(),true); 
      BufferedReader con = new BufferedReader(new InputStreamReader(System.in)); 
      String line; 

      do 
      { 
       line = r.readLine(); 

       if (line != null) 
       { System.out.println(line); } 

       line = con.readLine(); 
       w.println(line); 
      } 
      while(!line.trim().equals("bye")); 
     } 

     catch(Exception err) 
     { System.err.println(err); } 
    } 
} 

Код для сервера:

import java.io.*; 
import java.net.*; 

public class EchoServer 
{ 
    public EchoServer(int portnum) 
    { 
     try 
     { server = new ServerSocket(portnum); } 

     catch(Exception err) 
     { System.out.println(err); } 
    } 

    public void serve() 
    { 
     try 
     { 
      while(true) 
      { 
       Socket client; 
       client = server.accept(); 

       BufferedReader r; 
       r = new BufferedReader(new InputStreamReader(client.getInputStream())); 

       PrintWriter w = new PrintWriter(client.getOutputStream(),true); 
       w.println("Welcome to Java EchoServer. Type 'bye' to close."); 

       String line; 

       do 
       { 
        line = r.readLine(); 

        if (line != null) 
        { w.println("Got: " + line); } 
       } 
       while(!line.trim().equals("bye")); 

       client.close(); 
      } 
     } 

     catch(Exception err) 
     { System.err.println(err); } 
    } 

    public static void main(String[] args) 
    { 
     EchoServer s = new EchoServer(9999); 
     s.serve(); 
    } 

    private ServerSocket server; 
} 

Программа продолжает принимать ввод в бесконечном цикле и не дает никакого ответа даже когда я печатаю «bye». Я думаю, что основная проблема заключается в Server.accept(), который, похоже, не работает. Что может быть неправильным?

+2

'127.0.0.1' является' localhost'. Вы уверены, что в порту 999 работает сервер? –

+0

Этот вопрос не соответствует теме, потому что речь идет о базовых сетевых отношениях. – Ingo

+0

Вы уверены, что ServerSocket serverSocket = new ServerSocket (9999); работает в localhost. – Prabhakaran

ответ

0

Изменение стороне клиента код

line = r.readLine(); 

в

line = con.readLine(); 
Смежные вопросы