Java检查套接字是否发送

Java检查套接字是否发送,java,sockets,Java,Sockets,我正在创建一个简单的Java程序,其中客户端向服务器发送一条消息,服务器回复一条确认消息。但我的问题是:我能在BufferedReader行之前获得服务器响应/广播吗 服务器: 公共类多线程扩展线程{ 插座; 静态ArrayList clientList=新ArrayList(); 公共多线程(套接字套接字){ this.sock=sock; } 公开募捐{ 试一试{ DataInputStream in=新的DataInputStream(this.sock.getInputStream())

我正在创建一个简单的Java程序,其中客户端向服务器发送一条消息,服务器回复一条确认消息。但我的问题是:我能在
BufferedReader
行之前获得服务器响应/广播吗

服务器:

公共类多线程扩展线程{
插座;
静态ArrayList clientList=新ArrayList();
公共多线程(套接字套接字){
this.sock=sock;
}
公开募捐{
试一试{
DataInputStream in=新的DataInputStream(this.sock.getInputStream());
String read=in.readUTF();
如果(读取.equalsIgnoreCase(“退出”)){
System.out.println(this.sock.getRemoteSocketAddress()+“just dced”);
clientList.remove(这个);
this.sock.close();
}
否则{
字符串said=this.sock.getRemoteSocketAddress()+“said”+读取;
System.out.println(said);
for(多线程多客户端列表){
DataOutputStream o=新的DataOutputStream(multi.sock.getOutputStream());
o、 书面声明(赛义德);
}
this.sock.close();}
}捕获(IOE异常){
}
}
公共静态void main(字符串[]args)引发IOException{
ServerSocket ServerSocket=新的ServerSocket(7777);
System.out.println(“侦听”);
while(true){
Socket=serverSocket.accept();
System.out.println(“连接到”+socket.getRemoteSocketAddress());
多线程多=新的多线程(套接字);
clientList.add(多个);
multi.start();
}
}
}
客户:

公共类客户端{
公共静态void main(字符串[]args)抛出UnknownHostException、IOException{
while(true){
套接字=新套接字(“localhost”,7777);
DataInputStream in=新的DataInputStream(socket.getInputStream());
DataOutputStream out=新的DataOutputStream(socket.getOutputStream());
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
String line=br.readLine();
out.writeUTF(行);
if(行相等信号(“退出”))
{
系统输出打印项次(“断开”);
socket.close();
打破
}
否则{
System.out.println(“服务器说:+in.readUTF());
socket.close();
}
}
}
}

如果服务器只在客户机请求时才向客户机发送消息,我不知道服务器如何在客户机之前发送消息。你能添加代码或详细说明你的问题吗?我已经编辑了我的帖子需要更多的代码。。。它是UDP还是TCP?您的代码更加精细化
System.out.println(“服务器说:“+in.readUTF()”)。你不认为这句话就说明了一切吗?