如何在textview或toast msg中从服务器接收数据

时间:2019-03-28 11:49:24

标签: java android sockets tcp

我正在尝试在Java中进行套接字设置。 我想从客户端到服务器发送和接收数据。 客户端是我的android应用程序,服务器是我的PC。 客户端到服务器正在连接,并且还接收数据。但是,当我尝试将其从服务器发送到客户端时,Android设备未收到它。我想在textview或Toast中提及它。

预先感谢

Android Studio 3.1-android版本为oreo

Socket Test V 3.0.0

客户:(工作正常)

public class SendMessage extends AsyncTask<String, Void, Void>
{
    Socket s;
    DataOutputStream dos;
    PrintWriter pw;


    @Override
    protected Void doInBackground(String... voids)
    {
        String message = voids[0];

        try
        {
            s = new Socket( "197.70.107.35", 3344 );
            pw = new PrintWriter( s.getOutputStream() );
            pw.write( message );
            pw.flush();
            //pw.close();
            //s.close();


        } catch (IOException e)
        {
            e.printStackTrace();
        }
        return null;
    }
}

服务器部件(问题)

public class MainActivity extends AppCompatActivity {
    EditText e1;
    TextView e2;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );
        e1 = (EditText) findViewById( R.id.editText );
        e2 = (TextView) findViewById( R.id.receive );

        Thread myThread =  new Thread( new MyServerThread() );
        myThread.start();

    }

    class MyServerThread implements Runnable {
        Socket s;
        ServerSocket ss;
        InputStreamReader inr;
        BufferedReader bufferedReader;
        String message;
        Handler h = new Handler();

        public void run() {
            try {
                char[] data = new char[10];
                ss = new ServerSocket( 3344 );
                while (true) {

                    InputStreamReader inr = new InputStreamReader( s.getInputStream() );
                    int da = inr.read( data, 0, 9 );
                    System.out.print( data );

                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public void send(View v)
    {
        SendMessage SendMessage= new SendMessage();
        SendMessage.execute( e1.getText().toString());
    }

}

需要以Toast msg或Textview的形式从SERVER接收数据到移动应用程序(客户端)。

0 个答案:

没有答案