Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法
//服务器Service
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class Test {public static void main(String[] args) {Thread socketservice=new Thread(new Socket00());socketservice.start();}}class Socket00 implements Runnable{@Overridepublic void run() {try {ServerSocket serverSocket=new ServerSocket(54321);while(true){System.out.println(11);Socket client=serverSocket.accept();//接受客户端请求BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));String message1 = in.readLine();//读取一行数据/** 处理数据设为str*/String str="OK";//返回消息PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);out.println(str);in.close();out.close();client.close();}} catch (IOException e) {e.printStackTrace();}}
}
//客户端(布局就一个TextView 一个Button)
import java.io.*;
import java.net.Socket;import net.testSocket.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//客户端的实现
public class TestSocket extends Activity {private TextView text1;private Button but1;private EditText edit1;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);text1=(TextView)findViewById(R.id.text1);but1=(Button)findViewById(R.id.but1);edit1=(EditText)findViewById(R.id.edit);but1.setOnClickListener(new alistener());}class alistener implements OnClickListener{@Overridepublic void onClick(View v) {Socket socket=null;String mesg=edit1.getText().toString()+"\r\n";edit1.setText("");try {socket=new Socket("192.168.1.102",54321);//同一局域网的ip地址和服务器的端口号//向服务器发送信息PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);out.println(mesg);//接受服务器的信息BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));String mstr=br.readLine();System.out.println(mstr);out.close();br.close();socket.close();} catch(Exception e){System.out.println("ERROR");}}}
}
//本人遇见过2.3可用,4.1不可用,解决如下:
android 4.0以上不能在主线程使用网络,因为会造成假死,需要创建一个线程去执行网络任务
即在客户端,按下按钮的监听里不要写执行方法,而是写一个多线程,**thread.start,在那里执行
在4.0中,使用Toast最好利用handler
//在AndroidManifest.xml加入<uses-permission android:name="android.permission.INTERNET" />
Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法相关推荐
- 步进电机基础(8.1)-步进电机的问题解决方案-增加动态转矩的解决方法
步进电机基础(8.1)-步进电机的问题解决方案-增加动态转矩的解决方法 前言 基本信息 前言说明 8.1 增加动态转矩的解决方法 1 . 步进电机在低速时增加转矩的方法 1) 选择步距角小的步进电机 ...
- android手机存储速度慢,安卓内存泄露后台应用被迫关闭、系统速度慢的解决方法...
安卓内存泄露怎么办?升级到lollipop的android设备用户们有没有遇到后台应用被迫关闭.系统速度慢.经常重启等情况呢?其实这是内存泄露问题,下文小乐哥分享安卓内存泄露解决办法,遇到朋友可以节操 ...
- android炉石解析包错误,炉石传说7月11日解析失败怎么回事 游戏出错解决方法介绍...
原标题:炉石传说7月11日解析失败怎么回事 游戏出错解决方法介绍 炉石传说 7 月 11 日不少玩家在更新游戏后出现了"解析失败"等问题,针对这一问题,官方给出了安卓版用户的解决方 ...
- JAVA 网络编程(5) SOCKET UDP 单播和组播,以及组播其他机器收不到报文的解决方法
UDP既可以单播也可以组播 一,单播 单播的过程为 发送方: InetAddress destAddr = InetAddress.getByName("192.168.4.199" ...
- android模拟器中,不能将文件拷贝到的/system分区的原因,以及自动化解决方法
某些情况下,要调试的apk需要一些共享库,而这些库要放/system/lib下才能在运行时连接到. 但android模拟器每次启动后,系统分区/system是以只读方式挂载的,不能用向/system分 ...
- 原生socket使用ICMP协议实现ping单个或多个目标时发生窜包的解决方法
问题描述 原生socket使用ICMP协议实现ping功能,网上代码很多了,我参考的是这本:王艳平,张越.Windows网络与通信程序设计[M].北京人民邮电出版社,2006. 代码逻辑也很清晰,先构 ...
- Android studio导出的apk在真机上安装提示“文件不存在或已失效”的解决方法
假设Android studio当前的minSdk版本为API21,对应的Android版本是5.0,如果你的Android手机版本低于API21->Android5.0版本的,则导出的apk在 ...
- Android软键盘弹出时,覆盖布局,不是把布局顶上去的解决方法
方法一: 在你的activity中的oncreate中setContentView之前写上这个代码 getWindow().setSoftInputMode(WindowManager.LayoutP ...
- Android真机连接Eclipse时,打不开File Explorer下的data文件夹解决方法
当用真机开发Android时,连接了Eclipse后,默认在File Explorer下是达不开我们手机的data文件夹的,这里打不开是因为权限不足.以下有个小技巧可以解决这问题. 首先,测试机先ro ...
- Android Studio 卡在Download fastutil-8.4.0-sources jar以及New Module为灰色的问题及解决方法
New Module为灰色是因为gradle卡在downloading fastutil-8.4.0-sources jar导致无法编译完成,所以无法新建模块. 网上看了很多方法,都没有解决,小白摸索 ...
最新文章
- 谷歌地图最新hosts_如何查看2020最新版谷歌地球高精度卫星地图(附下载方法)...
- Fishe向量Fisher Vecotr(二)
- 聊聊大厂面试官必问的 MySQL 锁机制
- sublime 2 中常用快捷键
- html5 开发工具_前端HTML5开发工具有哪些呢?
- 美国国家公路交通安全管理局对特斯拉Autopilot系统展开正式调查
- 2 怎么用vite_在国内怎么玩steam服帝国时代2决定版?用斧牛加速器
- cisco接口模式转换
- 登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)
- 74HC595芯片引脚,功能介绍【250字】【原创】
- VS2015 LNK2001:无法解析的外部符号 debug调试
- 架构师应该具备什么技能
- Java中的动态代理
- Gradle - 简介
- 开发集成云信IM小程序聊天室流程
- DTAS尺寸公差分析软件-三维尺寸公差分析软件尺寸链计算软件
- “Apache官网打不开”怎么办?
- 搭建asp会议签到系统 第四章 会议统计
- mysql innodb 存储引擎
- 文旅景区夜游该如何设计项目
热门文章
- Mysql总结_02_mysql数据库忘记密码时如何修改
- yii2 rbac权限控制之菜单menu详细教程
- asp.net C# 计算运算耗时时间
- 《黑客》月刊中文版第一期正式发布,很给力!推荐围观!
- ZZULIOJ 1114: 逆序
- android相关论文,android
- HTML页面使用vant控件,如何优雅的使用Vant组件库
- 退出出库复核是什么意思_电商仓储与传统仓储有什么不同?
- 信息学奥赛一本通 1166:求f(x,n)
- 信息学奥赛一本通(1162:字符串逆序)