Android连接服务器端的Socket的实例代码

发布时间 - 2026-01-11 01:30:41    点击率:

废话不多说了,直接给大家贴代码了,具体代码如下所述:

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的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


# android  # 连接服务器端  # Android实现蓝牙客户端与服务器端通信示例  # Android客户端post请求服务器端实例  # Android解析服务器端发来的xml数据示例  # android客户端从服务器端获取json数据并解析的实现代码  # Android中使用socket通信实现消息推送的方法详解  # 给大家  # 所述  # 小编  # 说了  # 不多  # 连接到  # 给我留言  # 有任何  # btnSend  # btnConnect  # edReceive  # myHandler  # isReceive  # boolean  # SendThread  # edSend  # Toast  # EditText  # Button  # public 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何确保西部建站助手FTP传输的安全性?  如何在IIS7上新建站点并设置安全权限?  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  php结合redis实现高并发下的抢购、秒杀功能的实例  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  jQuery 常见小例汇总  Laravel定时任务怎么设置_Laravel Crontab调度器配置  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  js代码实现下拉菜单【推荐】  南京网站制作费用,南京远驱官方网站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何使用Vite进行前端资源打包?(配置示例)  如何利用DOS批处理实现定时关机操作详解  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  googleplay官方入口在哪里_Google Play官方商店快速入口指南  微信小程序 配置文件详细介绍  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  青岛网站建设如何选择本地服务器?  高端建站三要素:定制模板、企业官网与响应式设计优化  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何在建站主机中优化服务器配置?  如何在Ubuntu系统下快速搭建WordPress个人网站?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  北京的网站制作公司有哪些,哪个视频网站最好?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何在腾讯云免费申请建站?  如何用好域名打造高点击率的自主建站?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  网站制作企业,网站的banner和导航栏是指什么?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  实例解析Array和String方法  如何在阿里云完成域名注册与建站?  移动端脚本框架Hammer.js  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何在Windows 2008云服务器安全搭建网站?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel如何为API编写文档_Laravel API文档生成与维护方法  如何在万网利用已有域名快速建站?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  php json中文编码为null的解决办法