我有两个类,第一个是服务器,第二个是扩散视频。在服务器类中,在启动扩散之前,我有一个System.out.println。我想在第二类启动的视频只有当在控制台上写的是“客户端”与一定的IP地址之后。
我该怎么做呢?
服务器
try {
serverSocket = new ServerSocket(Constants.PORT);
}
catch (IOException e){
e.printStackTrace();
}
while (true) {
try{
socket = serverSocket.accept();
}
catch (IOException e) {
System.out.println("I/O Error : " + e);
}
System.out.println("Client " + socket.getInetAddress() + " connected !");
new DiffusionThread (socket).start();
}DiffuseVideo
try {
Util.transfertVideo(
new FileInputStream("chrono.flv"),
socket.getOutputStream(),
socket
);
} catch (SocketException e) {
System.err.println(this.getId() + ": " + e);
System.out.println("\n Client " + socket.getInetAddress() +" disconnected !");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}谢谢你们所有人。
发布于 2016-06-19 22:44:01
抱歉,如果我只是回答而不是评论。
但是您可以插入一些if子句来将一些布尔值设置为true/false,当然还可以为此创建setter/getter。
可能是这样的:
if (socket.getInetAsdress() == "1.2.3.4") {
connected = true;
}或者别的什么。我不知道是否有一些已经实现的方法,你可以检查它,它会返回一些布尔值。但请注意,您必须在开始时初始化布尔值-在我的示例中-是连接的,并且不要忘记在每次建立新连接时将其设置为false。
在那之后,你可以很容易地在你的第二个类中检查布尔值,就像这样:
if (Server.getBoolean == true) {
//code to execute
} else {
System.out.println("Connection Error!");
}或者,如果您在该布尔值上使用public,而不是setter/getter:
if (connected == true) ...希望这能对你有所帮助。如果你还需要什么,请告诉我。
https://stackoverflow.com/questions/37907648
复制相似问题