//服务器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不可用的解决方法相关推荐

  1. 步进电机基础(8.1)-步进电机的问题解决方案-增加动态转矩的解决方法

    步进电机基础(8.1)-步进电机的问题解决方案-增加动态转矩的解决方法 前言 基本信息 前言说明 8.1 增加动态转矩的解决方法 1 . 步进电机在低速时增加转矩的方法 1) 选择步距角小的步进电机 ...

  2. android手机存储速度慢,安卓内存泄露后台应用被迫关闭、系统速度慢的解决方法...

    安卓内存泄露怎么办?升级到lollipop的android设备用户们有没有遇到后台应用被迫关闭.系统速度慢.经常重启等情况呢?其实这是内存泄露问题,下文小乐哥分享安卓内存泄露解决办法,遇到朋友可以节操 ...

  3. android炉石解析包错误,炉石传说7月11日解析失败怎么回事 游戏出错解决方法介绍...

    原标题:炉石传说7月11日解析失败怎么回事 游戏出错解决方法介绍 炉石传说 7 月 11 日不少玩家在更新游戏后出现了"解析失败"等问题,针对这一问题,官方给出了安卓版用户的解决方 ...

  4. JAVA 网络编程(5) SOCKET UDP 单播和组播,以及组播其他机器收不到报文的解决方法

    UDP既可以单播也可以组播 一,单播 单播的过程为 发送方: InetAddress destAddr = InetAddress.getByName("192.168.4.199" ...

  5. android模拟器中,不能将文件拷贝到的/system分区的原因,以及自动化解决方法

    某些情况下,要调试的apk需要一些共享库,而这些库要放/system/lib下才能在运行时连接到. 但android模拟器每次启动后,系统分区/system是以只读方式挂载的,不能用向/system分 ...

  6. 原生socket使用ICMP协议实现ping单个或多个目标时发生窜包的解决方法

    问题描述 原生socket使用ICMP协议实现ping功能,网上代码很多了,我参考的是这本:王艳平,张越.Windows网络与通信程序设计[M].北京人民邮电出版社,2006. 代码逻辑也很清晰,先构 ...

  7. Android studio导出的apk在真机上安装提示“文件不存在或已失效”的解决方法

    假设Android studio当前的minSdk版本为API21,对应的Android版本是5.0,如果你的Android手机版本低于API21->Android5.0版本的,则导出的apk在 ...

  8. Android软键盘弹出时,覆盖布局,不是把布局顶上去的解决方法

    方法一: 在你的activity中的oncreate中setContentView之前写上这个代码 getWindow().setSoftInputMode(WindowManager.LayoutP ...

  9. Android真机连接Eclipse时,打不开File Explorer下的data文件夹解决方法

    当用真机开发Android时,连接了Eclipse后,默认在File Explorer下是达不开我们手机的data文件夹的,这里打不开是因为权限不足.以下有个小技巧可以解决这问题. 首先,测试机先ro ...

  10. Android Studio 卡在Download fastutil-8.4.0-sources jar以及New Module为灰色的问题及解决方法

    New Module为灰色是因为gradle卡在downloading fastutil-8.4.0-sources jar导致无法编译完成,所以无法新建模块. 网上看了很多方法,都没有解决,小白摸索 ...

最新文章

  1. 谷歌地图最新hosts_如何查看2020最新版谷歌地球高精度卫星地图(附下载方法)...
  2. Fishe向量Fisher Vecotr(二)
  3. 聊聊大厂面试官必问的 MySQL 锁机制
  4. sublime 2 中常用快捷键
  5. html5 开发工具_前端HTML5开发工具有哪些呢?
  6. 美国国家公路交通安全管理局对特斯拉Autopilot系统展开正式调查
  7. 2 怎么用vite_在国内怎么玩steam服帝国时代2决定版?用斧牛加速器
  8. cisco接口模式转换
  9. 登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)
  10. 74HC595芯片引脚,功能介绍【250字】【原创】
  11. VS2015 LNK2001:无法解析的外部符号 debug调试
  12. 架构师应该具备什么技能
  13. Java中的动态代理
  14. Gradle - 简介
  15. 开发集成云信IM小程序聊天室流程
  16. DTAS尺寸公差分析软件-三维尺寸公差分析软件尺寸链计算软件
  17. “Apache官网打不开”怎么办?
  18. 搭建asp会议签到系统 第四章 会议统计
  19. mysql innodb 存储引擎
  20. 文旅景区夜游该如何设计项目

热门文章

  1. Mysql总结_02_mysql数据库忘记密码时如何修改
  2. yii2 rbac权限控制之菜单menu详细教程
  3. asp.net C# 计算运算耗时时间
  4. 《黑客》月刊中文版第一期正式发布,很给力!推荐围观!
  5. ZZULIOJ 1114: 逆序
  6. android相关论文,android
  7. HTML页面使用vant控件,如何优雅的使用Vant组件库
  8. 退出出库复核是什么意思_电商仓储与传统仓储有什么不同?
  9. 信息学奥赛一本通 1166:求f(x,n)
  10. 信息学奥赛一本通(1162:字符串逆序)