2014-12-31 2 views
0

Я установил соединение между java-сервером и клиентом android с помощью сокетов. Я могу отправлять сообщения от android в java, но только по одному сообщению за раз. Что делать, если я хочу отправить данные из 2 переменных из android в java и в то же время получить эти данные в java в 2 разных переменных. Как я могу это достичь.Как отправить и получить несколько данных от клиента на сервер

Код для клиента Android

public class MessageClient extends Activity implements OnClickListener { 

EditText etMessage; 
Button bSend; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.messageclient); 
    bSend = (Button) findViewById(R.id.button1); 
    etMessage = (EditText) findViewById(R.id.etMessage); 
    bSend.setOnClickListener(this); 
} 

@Override 
public void onClick(View arg0) { 

      try { 
       Socket s = new Socket("192.168.0.100",7000); 
       DataOutputStream dos = new DataOutputStream(s.getOutputStream()); 
       dos.writeUTF(etMessage.getText().toString()); 
       dos.flush(); 
       dos.close(); 
       s.close(); 
      } catch (UnknownHostException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

} 

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

public static void main(String arg[]){ 
Thread t = new Thread(){ 

    public void run() { 
     // TODO Auto-generated method stub 

     try { 
      ServerSocket ss = new ServerSocket(7000); 

      while(true){ 

       Socket s = ss.accept(); 
       System.out.println("Server is running"); 
       DataInputStream dis = new DataInputStream(s.getInputStream()); 

       System.out.println("Received from client: "+dis.readUTF()); 

       dis.close(); 
       s.close(); 
      } 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
    }; 
t.start(); 
} 

Спасибо.

+1

Почему вы используете сокет-соединение. Я предлагаю вам создавать веб-службы на основе покоя на бэкэнд и осуществлять связь через него. Это упростит всю архитектуру и вы сможете изменить ее в соответствии с вашими требованиями. – Innovation

+0

Прошу прощения, но я не понял, вы можете дать некоторые сайты, чтобы узнать, или какой-либо пример, который вы знаете. – ManishPrajapati

ответ

0

Вы просто отправляете строку, а затем закрываете сокет. Вы можете попытаться отправить списки, а также можете отправить несколько DataInputStream без закрытия соединения сокета.

+0

Да, вы правы. Я попытаюсь отправить несколько потоков данных. Благодаря! :) – ManishPrajapati

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