2016-09-10 3 views
1

Я создаю приложение, в котором клиент может отправить текст на сервер при нажатии кнопки. Я хочу напечатать этот текст на стороне консоли, но всякий раз, когда нажимается кнопка на стороне клиента Ничего не произошло.Сервер не может получить текст от клиента java

и после этого иногда я получил эту строку на консоли [email protected]. Я не понимаю, почему это происходит?

SERVER КОД:

public static ServerSocket server = null; 
public static Socket client = null; 

public static void main(String []arg)throws IOException{ 
    try { 
     server = new ServerSocket(8002); 
     System.out.println("Server Started..............."); 
     while(true){ 
     client = server.accept(); 
     DataInputStream in = new DataInputStream(client.getInputStream()); 
     String msg = in.readLine(); 
     System.out.println("and: "+msg); 
     } 
    }catch(IOException r){ 
     System.out.println("error :"+r.getMessage()); 
    } 
} 

КЛИЕНТ КОД:

public void send(){ 
    send.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Socket cs = null; 
        try { 
         cs = new Socket("192.168.1.100", 8002); 
         DataOutputStream out = new DataOutputStream(cs.getOutputStream()); 
         out.writeBytes(text.toString()); 
        } catch (IOException e) { 
         Toast.makeText(KeyboardActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       } 
      } 
    ); 
} 

ответ

2

Это происходит потому, что text является EditText.

Я думаю, что вы на самом деле имел в виду,

out.writeBytes(text.getText().toString()); 

Вместо,

out.writeBytes(text.toString()); 
+0

Да, это работает ... !!! Я такой noob :( –

-2

Как обычно, вы читаете строки, но вы не писать строки. Добавьте терминатор линии к отправляемому сообщению.

Смежные вопросы