Android[socket 通信]Android控制台接收不到服务器的消息

注~孤身 腾讯集团有限公司 高端产品职位  2021-11-27 19:42:48

在Android Stdio中

这是客户段的代码 

 

 

package com.example.demo7;

import android.util.Log;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.Buffer;
import java.nio.charset.StandardCharsets;

public class SocketThread extends Thread {

    private Socket socket;

    @Override
    public void run() {

        try {
            System.out.println("正在进行服务器连接。。。。。。。。。。");
            socket = new Socket("192.168.210.18",20000);
            System.out.println("服务器连接成功");
            OutputStream outputStream = socket.getOutputStream();
            outputStream.write(("你好!我是来自客户端").getBytes(StandardCharsets.UTF_8));
            new Thread(){
                @Override
                public void run() {
                    try {
                        BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
                        System.out.println("来自服务器的消息:"+br.readLine().equals(null));
                        String serverinfo =null;
                        while((serverinfo=br.readLine())!=null){
                            Log.i("来自服务器的消息:",serverinfo);
                            System.out.println("来自服务器的消息:"+serverinfo);


                        }

                    } catch (IOException e) {
                        e.printStackTrace();

                    }

                }
            }.start();

//           socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

服务器代码

 

 读写子线程

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;

public class SocketServer implements Runnable {
	
	public Socket socket;
	public int i;

	public BufferedReader br;
	public SocketServer(Socket socket ,int i ){
		
		
		try {
			 br =new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		this.socket=socket;
		this.i=i;
	}

	@Override
	public void run() {
		
			System.out.println(i+"号客户端线程已启动!");
			
			String content =null;
			
			
			while((content=ReadFromClient())!=null){
				
				for(Socket s :SocketMain.socketlist){
					
					System.out.println(i+"号客户端的消息:"+content);
					
					try {
						OutputStream os =s.getOutputStream();
						
						os.write(("server info :"+content+"\n").getBytes("utf-8"));
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						
					}
					
				}
				
			}
			
	}
	public String ReadFromClient(){

		
		try {
			return br.readLine();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			SocketMain.socketlist.remove(socket);
		}return null;

	
	}
}

他俩已经连接上了

可是服务器只能显示客户端的消息,但是客户端显示不出服务器的消息。

...全文
69 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
比特灵 初级 2021-11-29

flush

  • 打赏
  • 举报
回复
相关推荐
发帖
Android
加入

7.9w+

社区成员

移动平台 Android
申请成为版主
帖子事件
创建了帖子
2021-11-27 19:42
社区公告
暂无公告