java socket为啥不阻塞

package pack1;

import java.io.*;

import java.net.ServerSocket;i

mport java.net.Socket;

public class Servers { public static void main(String[] args) {

// TODO Auto-generated method stub

try {

ServerSocket s=new ServerSocket(8888);

while (true) {

Socket s1=s.accept();

InputStream os=s1.getInputStream();

byte [] rece=new byte["nihao".getBytes().length];

os.read(rece);

String msg=new String(rece);

System.out.println(msg);

s1.close(); } }

catch (Exception e)
{ // TODO: handle exception} }}

# 这段程序当运行时,客户端不连接,为啥还输出乱码字符呢??请明白人解释下 Socket s1=s。accept(); 不是阻塞函数吗?客户端没有连接,为啥往下执行呢

我跑了一下你的代码 并没有出现乱码