Java代码没有语法错误,但运行出错

以下这段代码没有提示语法错误,却在运行时报错,求大神指教
import java.io.*;import java.net.*;
public class Ser{
public static void main(String args[]){
ServerSocket server = null;
Socket you = null;String s = null;
DataOutputStream out = null;
DataInputStream in = null;
try{
server = new ServerSocket(4441);
}catch(IOException e1){
System.out.println("ERROR:" +e1);
}
try{
you = server.accept();
in = new DataInputStream(you.getInputStream());
out = new DataOutputStream(you. getOutputStream());
while(true){
s = in.readUTF();
if(s!=null) break;
}
out.writeUTF("客户,你好,我是服务器");
out.close();
}
catch(IOException e){System.out.println("ERROR:"+e);}
}
}

socket先启动服务端,再启动客户端。你上面这段代码我试过了没报异常,你检查下究竟是什么错误哦。

图片说明

1.推荐使用debug 逐行跟中调试。
2.设置timeout

代码卡在you = server.accept();
在上面建立超时设置
server = new ServerSocket(4441);
server.setSoTimeout(5000); 五秒超时
程序就不会卡住了