2014-12-31 4 views
0

소켓을 사용하여 자바 서버와 안드로이드 클라이언트 간의 연결을 설정했습니다. 안드로이드에서 자바로 메시지를 보낼 수 있지만 한 번에 한 메시지 만 보낼 수 있습니다. 만약 내가 안드로이드에서 자바로 2 변수의 데이터를 보내고 동시에 2 개의 다른 변수에 자바에서 그 데이터를받을 수 있습니다. 어떻게이 작업을 수행 할 수 있습니까? 자바 서버클라이언트에서 서버로 여러 데이터를 보내고받는 방법

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(); 
} 

에 대한

코드 안드로이드 클라이언트에 대한

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(); 
      } 
     } 

} 

코드 감사합니다.

+1

왜 소켓 연결을 사용하는지. 백엔드에서 Rest 기반 웹 서비스를 만들고이를 통해 통신 할 것을 제안합니다. 전체 아키텍처를 쉽게 만들고 요구 사항에 따라 수정할 수 있습니다. – Innovation

+0

죄송합니다.하지만 이해하지 못했습니다. 배울 사이트 나 알고있는 예제를 제공 할 수 있습니까? – ManishPrajapati

답변

0

그냥 String을 보낸 다음 소켓을 닫는 것뿐입니다. 목록을 보내려고 할 수 있으며 소켓 연결을 닫지 않고도 여러 DataInputStream을 보낼 수 있습니다.

+0

네가 맞다. 여러 개의 데이터 스트림을 보내려고합니다. 감사! :) – ManishPrajapati

관련 문제