zoukankan      html  css  js  c++  java
  • 040 Android TCP协议的Socket通信

    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();
                }
            });
        }
    }
  • 相关阅读:
    CSS3 box-shadow(阴影使用)
    缩小窗口时CSS背景图出现右侧空白BUG的解决方法
    html打开个人QQ聊天页面
    帮助你实现元素动画的6款插件
    给出两个颜色,计算中间颜色返回数组
    名字首字母
    自适应网页设计
    tab切换jquery代码
    改变上传文件样式
    剑指offer 面试16题
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10534074.html
Copyright © 2011-2022 走看看