博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
040 Android TCP协议的Socket通信
阅读量:4708 次
发布时间:2019-06-10

本文共 3884 字,大约阅读时间需要 12 分钟。

1.介绍

2.使用方法

3.java后台代码

服务器server

package com.lucky.servertest;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class MyServer {    public static final String bm="gbk"; //定义客户端和服务器通信的统一编码    public static void main(String[] args) throws IOException {        ServerSocket serverSocket=new ServerSocket(30003); //实例化一个服务器套接字,30003为端口号        while (true){            Socket socket=serverSocket.accept(); //获取套接字            InputStream inputStream=socket.getInputStream(); //服务器socket输入流,从socket中读取数据            OutputStream outputStream=socket.getOutputStream();//服务器socket输出流,对应数据的写操作            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); //读取客户端传输过来的数据            String str=bufferedReader.readLine();            System.out.println(str);  //控制台输出utf-8            PrintStream printStream=new PrintStream(outputStream);            printStream.println(new String(("收到的消息:").getBytes(bm))+str);  //将数据传递给客户端            //printStream.println("收到的消息:"+str);  //将数据传递给客户端        }    }}

客户端手机

package com.lucky.test49socket1;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import java.io.UnsupportedEncodingException;import java.net.Socket;public class MainActivity extends AppCompatActivity {    EditText editText;    TextView textView;    Button button1;    String stringTemp;    String datastr;    public static final String bm="gbk";    //将接收到的服务器数据显示到textview    Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            if(msg.what==0x01){                try {                    textView.setText("1"+new String(stringTemp.getBytes(bm)));                } catch (UnsupportedEncodingException e) {                    e.printStackTrace();                }            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        editText=findViewById(R.id.editText);        textView=findViewById(R.id.textView2);        button1=findViewById(R.id.button);        button1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                new Thread(){                    @Override                    public void run() {                        try {                            Socket socket=new Socket("192.168.228.2",30003);                            //向服务器发送消息,socket输出流,写                            OutputStream outputStream=socket.getOutputStream();                            PrintStream printStream=new PrintStream(outputStream);                            printStream.println("<-----杭州--->"+editText.getText().toString());//将数据传输到Myserver服务器                            //接收来自服务器的消息                            InputStream inputStream=socket.getInputStream();  //socket输入流,读                            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream,bm));                            stringTemp=bufferedReader.readLine();                            handler.sendEmptyMessage(0x01);                        } catch (IOException e) {                            e.printStackTrace();                        }                    }                }.start();            }        });    }}

 

转载于:https://www.cnblogs.com/luckyplj/p/10534074.html

你可能感兴趣的文章
xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置
查看>>
Ionic实战 自动升级APP(Android版)
查看>>
C#中的委托和事件(续)
查看>>
python--MySql
查看>>
机器学习 - pycharm, pyspark, spark集成篇
查看>>
mysql explain 中key_len的计算
查看>>
实验一
查看>>
Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
查看>>
Lua -- 简洁、轻量、可扩展的脚本语言
查看>>
Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207
查看>>
[Fiddler] 开启Fiddler抓包的时候产品报“证书错误”
查看>>
打包苦逼活
查看>>
Django:视图views(一)
查看>>
Oracle Certified Java Programmer 经典题目分析(二)
查看>>
k8s-service
查看>>
Swift 用Delegate和Block实现回调的Demo
查看>>
第二十五章补充内容 17位字段
查看>>
灰色预测
查看>>
css随笔
查看>>
基于自己封装的select下拉选择的省市区三级联动效果,兼容IE
查看>>