时间:2021-05-20
废话不多说了,直接给大家贴代码了,具体代码如下所述:
package com.exa
mple.esp8266;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintStream;import java.net.Socket;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity { private EditText edSend, edReceive; private Button btnConnect, btnSend; private Handler myHandler; private SendThread SendThread; private boolean isReceive = false; private boolean isConnect = false; private static final String HOST = "192.168.4.1"; private static final int PORT = 333; String strMessage; Socket socket = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edSend = (EditText) findViewById(R.id.edSend); edReceive = (EditText) findViewById(R.id.edReceive); btnConnect = (Button) findViewById(R.id.btConnect); btnSend = (Button) findViewById(R.id.btSend); // 连接 btnConnect.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub if (!isConnect) { new Thread(connectThread).start(); isConnect = true; } } }); // 发送 btnSend.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // 启动发送线程 new Thread(SendThread).start(); } }); myHandler = new Handler() {// UI主线程消息处理函数 public void handleMessage(Message msg) { Bundle bundle = msg.getData(); String string = bundle.toString(); edReceive.setText(string); } }; } // 连接到服务器的接口 Runnable connectThread = new Runnable() { public void run() { // TODO Auto-generated method stub try { socket = new Socket(HOST, PORT); if (socket != null) Toast.makeText(getApplicationContext(), "连接成功", Toast.LENGTH_LONG).show(); else Toast.makeText(getApplicationContext(), "连接失败", Toast.LENGTH_LONG).show(); // 初始化发送线程 SendThread = new SendThread(socket); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; // 接收消息的接口 Runnable Receive = new Runnable() { InputStream inStream; private byte[] buffer; private String str = null; public void run() { // TODO Auto-generated method stub while (!isReceive) { buffer = new byte[512]; try { inStream = socket.getInputStream(); inStream.read(buffer); } catch (IOException e) { e.printStackTrace(); } str = new String(buffer); Bundle bundle = new Bundle(); bundle.get(str); Message message = new Message(); message.setData(bundle); myHandler.sendMessage(message); } } }; // 发送线程 private class SendThread extends Thread { private OutputStream outStream = null; private String str = null; SendThread(Socket socket) { try { outStream = socket.getOutputStream(); } catch (IOException e) { e.printStackTrace(); } } public void run() { // while(true){ str = edSend.getText().toString().trim(); PrintStream pt = new PrintStream(outStream); pt.print(str); new Thread(Receive).start(); // } } } protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if (Receive != null) { isReceive = false; ((Thread) Receive).interrupt(); } }}以上所述是小编给大家介绍的Android连接服务器端的Socket的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android客户端请求服务器端的详细解释1.Android客户端与服务器端通信方式:Android与服务器通信通常采用HTTP通信方式和Socket通信方式,
服务器端代码:#-*-coding:cp936-*-importsocketsock=socket.socket(socket.AF_INET,socket.S
本文实例为大家分享了android通过servlet服务器保存文件到手机的具体代码,供大家参考,具体内容如下服务器端:(手机和电脑连接的同一个WIFI)pack
网络通信协议中的UDP通信是无连接通信,客户端在发送数据前无需与服务器端建立连接,即使服务器端不在线也可以发送,但是不能保证服务器端可以收到数据。本文实例即为基
网络通信协议中的UDP通信是无连接通信,客户端在发送数据前无需与服务器端建立连接,即使服务器端不在线也可以发送,但是不能保证服务器端可以收到数据。本文实例即为基