我想读取服务器发送的数据(我的服务器是esp8266)

时间:2018-07-10 04:47:53

标签: android android-studio

我有一个服务器客户端连接,我正在尝试读取服务器发送的消息。我可以向服务器发送消息,但是当我尝试在我的应用中读取消息时,我不知道如何读取该消息。 我的服务器是ESP8266模块。

我可以通过此模块发送消息,但我不知道如何在Main3Activity中读取该消息。

这是我正在使用的代码:

func collectionView(_ collectionView: UICollectionView,
                        viewForSupplementaryElementOfKind kind: String,
                        at indexPath: IndexPath) -> UICollectionReusableView {
        let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader,
                                                                         withReuseIdentifier: "headerView", for: indexPath) as! HeaderView
        headerView.delegate = self

    return headerView
    }

这是我的TCPClient类

public class Main3Activity extends AppCompatActivity {

    public static String data = " ";

    Socket client;
    SocketAddress socketAddress;
    OutputStream outputStream;

    String ServerIP = "192.168.1.1";
    int ServerPort = 8888;

    String message;
    public final static String msg = null;

    public int i;


    EditText et_ServerIP, et_ServerPort;
    TextView tv_DataSendRecive, info;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);


        tv_DataSendRecive = (TextView) findViewById(R.id.tv_DataSendRecive);
        info = (TextView) findViewById(R.id.info);
        et_ServerIP = (EditText) findViewById(R.id.et_ServerIP);
        et_ServerPort = (EditText) findViewById(R.id.et_ServerPort);


    }

    public void onClick_btn_Send(View v) {

        switch (v.getId()) {
            case R.id.led_2:
                message = "2 led\n";
                break;
            case R.id.led_1:
                message = "1 led\n";
                break;

            case R.id.led_4:
                message = "4 led\n";
                break;
            case R.id.led_3:
                message = "3 led\n";
                break;

            case R.id.led_6:
                message = "6 led\n";
                break;
            case R.id.led_5:
                message = "5 led\n";
                break;

            case R.id.led_8:
                message = "8 led\n";
                break;
            case R.id.led_7:
                message = "7 led\n";
            default:
                return;
        }




        tv_DataSendRecive.append(" " + message);

        new Thread(new Runnable() {
            @Override
            public void run() {

                try {
                    ServerIP = et_ServerIP.getText().toString();
                    ServerPort = Integer.parseInt(et_ServerPort.getText().toString());


                    if (i == 0) {
                        socketAddress = new InetSocketAddress(ServerIP, ServerPort);
                        client = new Socket();
                        try {
                            client.connect(socketAddress);
                        } catch (IOException e1) {
                            e1.printStackTrace();
                        }

                        i = 1;
                    }


                    if (client.isConnected()) {
                        // ShowToast( "Client is Connected." );

                        try {
                            outputStream = client.getOutputStream();
                        } catch (IOException e1) {
                            e1.printStackTrace();
                        }
                        byte[] bytes = message.getBytes();
                        try {
                            outputStream.write(bytes);
                        } catch (IOException e1) {
                            e1.printStackTrace();
                        }
                        try {
                            outputStream.flush();
                        } catch (IOException e1) {
                            e1.printStackTrace();
                        }
                        ///////// outputStream.close();\\\\\\\\\\\\\\\\\\\\\




                    } else {
                        ShowToast("Client is Not Connected.");
                    }


                    ////////////////////  client.close();  \\\\\\\\\\\\\\\\\\\
                } catch (final Exception e) {
                    ShowToast(e.toString());
                }

            }
        }).start();

    }

    public void ShowToast(final String Data) {
        runOnUiThread(new Runnable() {
            public void run() {
                Toast.makeText(getApplicationContext(), Data, Toast.LENGTH_LONG).show();
            }
        });
    }
}

0 个答案:

没有答案