Проблема с отправкой сообщения vb.net серверу на Android-клиент - PullRequest
0 голосов
/ 01 июня 2019

Я новичок в Android. Я пытался сделать сервер на vb.net (vb) и могу отправлять сообщения в приложение для Android (клиент). Я видел много обучающих программ, касающихся сервера и клиента (Java-сервер для Android-клиента | C # сервер для Android-клиента). Я нашел код в vb.net сервера в качестве простого примера, но когда я тестировал его с другим клиентским кодом в Android, он не работал (уже настраивал IP и порт). Я не понимаю, что может быть не так

КОД СЕРВЕР VB.NET

    Dim server As New TcpListener(1371)
    Dim client As New TcpClient
    Dim stream As NetworkStream

'BUTTON START
   Try

            server.Start()
            client = server.AcceptTcpClient

            'Receive msg'
            stream = client.GetStream()
            Dim r_byt(client.ReceiveBufferSize) As Byte
            stream.Read(r_byt, 0, client.ReceiveBufferSize)
            Dim str As String = Encoding.ASCII.GetString(r_byt)
            TextBox1.Text = str



            'Send msg'
            'Dim s_byt() As Byte = Encoding.UTF8.GetBytes("got it" + vbCr)
            'stream.Write(s_byt, 0, s_byt.Length)

            stream.Close()


        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

КОД КЛИЕНТА ANDROID

public void ini_(View v) {

    String mensaje = "asdf";

    new AsyncTask < String, Void, String > () {
        @Override
        protected String doInBackground(String...strings) {
            String mensaje = strings[0];
            try {
                Socket miSocket = new Socket("192.168.1.8", 1371);

                // Request data
                DataOutputStream flujoSalida = new DataOutputStream(miSocket.getOutputStream());
                flujoSalida.writeUTF("TEST");

                // Read data
                //DataInputStream inputStream = new DataInputStream(miSocket.getInputStream());
                //message = inputStream.readUTF();



            } catch (UnknownHostException e1) {
                mensaje = e1.getMessage();
            } catch (IOException e1) {
                mensaje = e1.getMessage(); 
            }

            return mensaje;
        }

        @Override
        protected void onPostExecute(String result) {

            AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
            alertDialog.setTitle("Alert");
            alertDialog.setMessage(result);
            alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
            alertDialog.show();

        }
    }.execute(mensaje);
}

Когда я запускаю сервер с кнопки в vb.net, форма останавливается (как ожидание ответа клиента), после того, как она уже активирована, и тестируем клиента, нажав на кнопку, сервер в vb.net больше не заморожен но не возвращает мне никаких сообщений .. Если я запускаю сервер, но, находясь в браузере, я выполняю этот код в консоли:

var x = new WebSocket("ws://192.168.1.8:1371")

Я получаю сообщение из заголовка браузера на моем сервере vb.net https://i.imgur.com/QxYn6Ww.png

Но в клиенте (android), если я делаю то же самое, он возвращает только сообщение, которое я определил, но я не знаю, правильно ли это, что это так https://i.imgur.com/NMBFEZc.png

Надеюсь, вы мне поможете. Извините, мой плохой английский

...