zoukankan      html  css  js  c++  java
  • 安卓学习之网络应用

    基于TCP/IP的ServerSocket/Socket通信

    pc服务器端程序:

    package com.company;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
        // write your code here
            ServerSocket ss = new ServerSocket(30000);
            //不断循环接受来自客户端的请求
            while(true){
                //每当接收到客户端Socket的请求时,服务器端也对应缠手一个Socket
                Socket socket = ss.accept();
                OutputStream os = socket.getOutputStream();
                os.write("您好,您收到来自服务器的祝福
    ".getBytes("utf-8"));
                System.out.println("收到一个socket请求");
                //关闭输出流,关闭socket
                os.close();
                socket.close();
            }
        }
    }

    客户端程序:

    package com.example.jialuzhang.myapplication;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.Socket;
    
    public class MainActivity extends AppCompatActivity {
        TextView textView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textView = (TextView)findViewById(R.id.tv1);
    
            new Thread(){
                @Override
                public void run(){
                    try {
                        Socket s = new Socket("192.168.199.208",30000);
                        s.setSoTimeout(2000);   //设置两秒的超时时长
                        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
                        String line = br.readLine();
                        textView.setText("来自服务器的数据:"+line);
                        br.close();
                        s.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                        textView.setText("请求超时");
                    }
                }
            }.start();
        }
    }

    结果:

  • 相关阅读:
    编译nginx增加fair模块
    使用CentOS8来部署php7.4
    通过PHP代码将大量数据插入到Sqlite3
    不同程序语言处理加密算法的性能对比(PHP/Golang/NodeJS)
    CentOS8更换国内YUM源
    MySQL获取上月第一天、上月最后日、本月第一天、本月最后日的方法
    GO
    Go-数据类型以及变量,常量,函数,包的使用
    GO语言介绍以及开发环境配置
    利用python代码操作git
  • 原文地址:https://www.cnblogs.com/zjlyyq/p/6490664.html
Copyright © 2011-2022 走看看