欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用 java| android 编写第一个服务器

程序员文章站 2022-04-12 22:09:43
首先在安卓端设置相应的组件来展示服务器发送的消息,例如TextViewsocket通信需要新开一个线程,这是由于进行网络通信这类不稳定耗时的任务,可能对UI线程造成阻塞,所以Android2.3之后的平台不允许在UI线程中建立网络链接以及数据通信客户端使用Socket类 ,在构造方法中指定接收消息的服务器ip地址和端口号,在服务端使用SocketServer来监测是否有客户端向自己发送请求。android客户端向服务器发送请求package com.example.myapplica......

 

首先在安卓端设置相应的组件来展示服务器发送的消息,例如TextView

socket通信需要新开一个线程,这是由于进行网络通信这类不稳定耗时的任务,可能对UI线程造成阻塞,所以Android2.3之后的平台不允许在UI线程中建立网络链接以及数据通信

客户端使用Socket类 ,在构造方法中指定接收消息的服务器ip地址和端口号,在服务端使用SocketServer来监测是否有客户端向自己发送请求。

android客户端向服务器发送请求

package com.example.myapplication2;

import androidx.appcompat.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;
import java.net.SocketTimeoutException;

public class MainActivity extends AppCompatActivity {

    TextView tvInfo;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvInfo=(TextView)findViewById(R.id.receivedInfo);
        new Thread(){
            public void run(){
                try {
                    Socket socket=new Socket("10.28.193.145",4766);//创建socket
                    socket.setSoTimeout(3000);
                    BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    String lien=br.readLine();
                    tvInfo.setText("Client received: "+lien);
                    br.close();
                    socket.close();
                }
                catch (SocketTimeoutException e){
                    e.printStackTrace();
                }
                catch (IOException e){
                    e.printStackTrace();
                }
            }
        }.start();

    }
}

Java程序编写服务器 使用socketServer接受请求并做出响应

package hah;


import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws IOException{
        ServerSocket serverSocket = new ServerSocket(4766);
        while(true){
        	System.out.println("working");
            Socket socket = serverSocket.accept();
            OutputStream os = socket.getOutputStream();
            os.write("this is server!".getBytes("utf-8"));
            os.close();
            socket.close();
        }
    }
}

 

本文地址:https://blog.csdn.net/mid_Faker/article/details/108703642

相关标签: android