服务器端Socket直接在服务器Java控制台上运行,只要Java环境配置没有错误就行。

服务器端:

AndroidService类,开启一个Socket服务,指定端口为30000

public class AndroidService {public static void main(String[] args) throws IOException {ServerSocket service = new ServerSocket(30000);while(true){//等待客户端连接Socket socket = service.accept();new Thread(new AndroidRunable(socket)).start();}}
}

AndroidRunable类,向客户端返回hello world

public class AndroidRunable implements Runnable {Socket socket = null;public AndroidRunable(Socket socket){this.socket = socket;}@Overridepublic void run() {//向android客户端输出hello worldString line = null;InputStream inputStream;OutputStream outputStream;String str = "hello world!";//向客户端发送消息try{outputStream = socket.getOutputStream();inputStream = socket.getInputStream();BufferedReader bff = new BufferedReader(new InputStreamReader(inputStream));outputStream.write(str.getBytes("gbk"));outputStream.flush();//半关闭socketsocket.shutdownOutput();//获取客户端的信息while ((line = bff.readLine()) != null) {System.out.print(line);}//关闭输入输出流outputStream.close();bff.close();inputStream.close();socket.close();}catch (IOException e){e.printStackTrace();}}
}

安卓客户端:

首先加入联网许可

布局XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.konghao.androidsocket.MainActivity"><TextViewandroid:id="@+id/text"android:layout_marginLeft="20dp"android:textSize="18dp"android:layout_width="match_parent"android:layout_height="wrap_content" /><LinearLayoutandroid:layout_alignParentBottom="true"android:layout_width="match_parent"android:layout_height="wrap_content"><EditTextandroid:id="@+id/edit"android:layout_weight="0.7"android:layout_width="0dp"android:layout_height="wrap_content"android:hint="给服务器发送信息"/><Buttonandroid:id="@+id/send"android:layout_weight="0.3"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginBottom="10dp"android:text="发送"/></LinearLayout></RelativeLayout>

MainActivity

public class MainActivity extends Activity implements View.OnClickListener{Socket socket = null;String buffer = "";private TextView text;private EditText edit;private Button send;private String getedit;private static final int UPDATE = 1;Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg){super.handleMessage(msg);switch (msg.what){case UPDATE:{Bundle bundle = msg.getData();text.append("server:"+bundle.getString("msg")+"\n");}break;}}};class MyThread extends Thread{public String text1;public MyThread(String str){text1 = str;}@Overridepublic void run(){Message msg = new Message();msg.what = UPDATE;Bundle bundle = new Bundle();bundle.clear();try{//连接服务器 并设置连接超时为5秒socket = new Socket();socket.connect(new InetSocketAddress("112.74.92.125",30000),5000);//获取输入输出流OutputStream ou = socket.getOutputStream();BufferedReader bff = new BufferedReader(new InputStreamReader(socket.getInputStream()));//读取发来服务器信息String line = null;buffer = "";while ((line = bff.readLine()) != null) {buffer = line + buffer;}Log.d("孔昊",buffer.toString());//向服务器发送信息ou.write("android".getBytes("gbk"));ou.flush();bundle.putString("msg", buffer.toString());msg.setData(bundle);//发送消息 修改UI线程中的组件handler.sendMessage(msg);//关闭各种输入输出流bff.close();ou.close();socket.close();}catch (SocketTimeoutException e){//连接超时 在UI界面显示消息bundle.putString("msg", "服务器连接失败!请检查网络是否打开");msg.setData(bundle);//发送消息 修改UI线程中的组件handler.sendMessage(msg);}catch (IOException e){e.printStackTrace();}}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text = (TextView) findViewById(R.id.text);edit = (EditText) findViewById(R.id.edit);send = (Button) findViewById(R.id.send);send.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch(view.getId()){case R.id.send:{getedit = edit.getText().toString();text.append("client:"+getedit+"\n");new MyThread(getedit).start();}break;}}
}

Android学之客户端服务端Socket简单通信相关推荐

  1. Android客户端与服务器用Socket进行通信

    Android客户端与服务器用Socket进行通信(简单,基础) #####哈哈哈,很久没有好好学习了,今天写一个关于通信的,我也是刚刚学到,代码还不完善,,,,有问题请大家指出 #Android客户 ...

  2. python与android交互,Android客户端与Python服务器端的简单通信

    最近在做一个APP,需要与服务器通信,一点一点的尝试,记录一下. 本文使用了OkHttp和Flask框架. Android客户端: 实现功能输入完点击OK按钮后会toast成功的信息. Python服 ...

  3. 基于Android的聊天软件,Socket即时通信,实现用户在线聊天

    基于Android的聊天软件,Socket即时通信,单聊,聊天室,可自行扩展功能,完善细节. [实例功能] 1.运行程序,登录界面, 注册账号功能 2.进入主界面,有通讯录, 个人信息. 3.点击好友 ...

  4. python实现socket简单通信

    python实现socket简单通信 首先先来简单介绍下socket: (具体更详细介绍的可以在网上找找,都讲得非常详细),这里主要是我自己的一些理解. socket是在应用层与传输层之间的一个抽象层 ...

  5. socket简单通信

    原文:socket简单通信 粗糙简略的初版,后续多加点功能权当练手 /* =============================================================== ...

  6. 【Zynq UltraScale+ MPSoC】基于LWIP模板的udp通信与测试(一):网络调试助手和PS端的简单通信

    文章目录 一.前言 二.PL端的配置 三.PS端的程序设计 1.LWIP的UDP服务器模板介绍 readme main.c udp_perf_server platform_zynqmp.c 2.具体 ...

  7. Java Socket实现客户端服务端之间的通信

    Java Socket Java Socket编程用于在不同JRE上运行的应用程序之间的通信. Java Socket编程可以是面向连接的或无连接的. Socket和ServerSocket类用于面向 ...

  8. 手机和电脑基于java的socket简单通信

    Java手机与电脑的Socket通信 了解手机与电脑的socket通信 下面给出代码 完整程序代码 效果 了解手机与电脑的socket通信 1.内网之间的通信: 内网就是两者处于同一个局域网之中,不用 ...

  9. linux socket通信组件,Linux下socket简单通信

    #define MAXLINE 4096 /**************程序流程******************* 1 用socket()函数创建一个socket 2 用bind()绑定到一个本地 ...

最新文章

  1. libopencv_core.so.2.4: cannot open shared object file: Depends: libopencv-photo2.4v5
  2. CodeReview学习与总结
  3. java intfunction_Java IntFunction類代碼示例
  4. 自制一个 简易jQuery 的 API
  5. OpenCV, 名校机器学习相关课程
  6. 双向循环链表【数据结构】
  7. 斯特林发动机图纸尺寸_南昌教学模型订做,航空发动机模型_境海模型
  8. 将二维列表输出到excel
  9. eclipse 项目 链接 oracle 空指针,Eclipse 常用配置技巧
  10. 点计算机没有本地磁盘,快速解决WinPE系统下没有本地磁盘的方法
  11. 前端如何更精准的评估开发时间
  12. 如何在计算机中找到桌面这个项,怎样找到“计算机管理”这项菜单?
  13. 机器学习面试-处理聚类问题
  14. python生成linux执行文件_比较Python中两个PyInstaller生成的Linux可执行文件
  15. 算法笔记_面试题_2.移动零(将数组的的0元素移到末尾)
  16. cachecloud安装指南
  17. 最优秀的数据可视化案例欣赏
  18. winform程序:newtonsoft json 序列化时出现 “unterminated string. Excepted delimiter...
  19. CSSposition定位(relative、absolute、fixed、sticky)
  20. php图书馆注册模板,php微信公众号开发之校园图书馆

热门文章

  1. TPG和RCN收购Wave 打造美国No. 6有线运营商
  2. css html5 css3
  3. 客观分析电子合同是如何提升效率的?
  4. 连接手表_小米手表配对时间长、断开连接后一直连不上怎么办?
  5. antd vue form 手动校验_Ant Design 4.0 的一些杂事儿 - Form 篇
  6. 复工后,企业裁员、降薪前必须了解的10个法律问题
  7. 哥德巴赫猜想两种题目解法
  8. 58到家数据库30条军规解读 【转】
  9. JSON解析基础使用知识-Java
  10. 在word中用vba为选中区域自动添加行号或删除行号