简体   繁体   English

如何从客户端到服务器发送和接收多个数据

[英]How to send and receive multiple data from client to server

I have established a connection between java server and android client using sockets. 我已经使用套接字在java服务器和android客户端之间建立了连接。 I can send messages from android to java, but only 1 message at a time. 我可以将消息从android发送到Java,但一次只能发送1条消息。 what if I want to send data of 2 variables from android to java and at the same time receive those data in java in 2 different variables. 如果我想将2个变量的数据从android发送到java,同时在2个不同变量的java中接收这些数据,该怎么办? How can I achieve this.?? 我怎么能做到这一点?

Code for Android Client 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();
            }
        }

}

Code for java server 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();
}

Thank you. 谢谢。

您只是发送一个String然后关闭套接字。您可以尝试发送列表,也可以发送多个DataInputStream dis,而无需关闭套接字连接。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM