📄 net.java
字号:
package net;
import java.net.InetAddress;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JOptionPane;
public class Net{
public static final int PORT=5678;
private Timer timer;
private SocketServer server;
private SocketClient client;
public static boolean isServer;
public static boolean hasConnected=false;
public Net(){
timer=new Timer();
timer.schedule(new ServerTask(),1000);
}
public void connectServer(String ipStr){ //连接服务器
try{
client=new SocketClient(ipStr);
System.out.println("成功连接服务器!");
hasConnected=true;
}catch(Exception e){
JOptionPane.showMessageDialog(null,"连接不上,请确认对方是否在线!");
System.out.println("连接不上....");
}
isServer=false;
timer.cancel();
}
public void sendMessage(String message){ //发送信息
System.out.println("Net.sendMsg: "+message);
if(isServer)
server.send(message);
else
client.send(message);
}
public String readMessage(){ //接收信息
if(!hasConnected){
return "";
}
String message = "";
try{
if (isServer)
message = server.read();
else
message = client.read();
}catch(Exception e){
System.out.println("Cannot read from net. Check your network");
}
return message;
}
private class ServerTask extends TimerTask{ //开启本机服务器
public void run(){
try{
server = new SocketServer();
}catch(Exception e){
// System.out.println("客户端:连接本机服务器.");
connectServer(getMyAdress()); //连接本机服务器,测试用
}
if(server.isConnected) hasConnected=true;
}
}
public static String getMyAdress(){ //获取本机IP
String wholeString;
String ipString;
try{
wholeString = InetAddress.getLocalHost().toString();
ipString = wholeString.substring(wholeString.lastIndexOf("/") + 1);
System.out.println(wholeString+"\n"+ipString);
return ipString;
}catch (Exception e){
return "null";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -