📄 mainframe.java
字号:
}//GEN-LAST:event_formWindowOpened
private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
if(JOptionPane.showConfirmDialog(this,"您是否确认退出运行的系统,请您确认","信息提示",JOptionPane.YES_NO_OPTION)==JOptionPane.OK_OPTION)
{
this.dispose();
System.exit(0);
};
}//GEN-LAST:event_jMenuItem6ActionPerformed
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
if(evt.getActionCommand()=="查看日志信息")
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new getLog().setVisible(true);
}
});
}
}//GEN-LAST:event_jMenuItem4ActionPerformed
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
if(evt.getActionCommand()=="配置日志信息") {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new setLog().setVisible(true);
}
});
}
}//GEN-LAST:event_jMenuItem3ActionPerformed
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
if(evt.getActionCommand()=="查看服务器配置")
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new getConfig().setVisible(true);
}
});
}
}//GEN-LAST:event_jMenuItem2ActionPerformed
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
//菜单命令响应
//打开配置文件
if(evt.getActionCommand() =="配置服务器")
{
//JOptionPane.showMessageDialog(this,"");
JOptionPane.showMessageDialog(this,"");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new setConfig().setVisible(true);
}
});
}
}//GEN-LAST:event_jMenuItem1ActionPerformed
private void jMenuItem1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuItem1MouseClicked
// 配置服务器
}//GEN-LAST:event_jMenuItem1MouseClicked
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
}
// 变量声明 - 不进行修改//GEN-BEGIN:variables
private javax.swing.JButton jBstartServer;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton10;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JButton jButton9;
private javax.swing.JList jLClient;
private javax.swing.JLabel jLabel1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenu jMenu5;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JProgressBar jPstat;
private javax.swing.JScrollPane jSClient;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTJVM;
private javax.swing.JTextArea jTResult;
// 变量声明结束//GEN-END:variables
//获取命令的内部检测类 随时检测服务器的获取命令情况
class checkData implements Runnable
{
public receiveMsg data =null;
public checkData(receiveMsg data)
{
this.data = data;
}
public void run()
{
jTResult.setText("监视线程启动成功..............\r\n");
// 提示: 多线程启动监视以后 出现屏幕闪烁现象 //
jTResult.setText("正常启动"+this.data.toString());
}
}
//检测虚拟机的情况线程
class checkJVM implements Runnable
{
public checkJVM()
{
}
public void run()
{
jTResult.setText("监视虚拟机线程启动成功..............\r\n");
jTJVM.setText("虚拟机检测已经打开.....");
}
}
// 端口:6100
class Clientlist implements Runnable
{
public MainFrame mainFrame = null;
public Vector ClientList;
Vector vecSocket = new Vector();
public Clientlist(Vector ClientList,MainFrame mainFrame)
{
this.mainFrame = mainFrame;
this.ClientList = ClientList;
}
public void sendCmd(InetAddress inet,int port,String cmd)
{
DatagramPacket pack = new DatagramPacket(cmd.getBytes(),cmd.length(),inet,port);
try {
(new DatagramSocket()).send(pack);
} catch (SocketException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
public synchronized void run()
{
String[] str = {"","",""};
jLClient.setListData(str);
try
{
ServerSocket serList = new ServerSocket(6100,100,InetAddress.getLocalHost());
serList.setSoTimeout(3000);
boolean bret = false;
while(true) //服务器维护一个客户端的列表
{
try{
Socket sock = serList.accept();
ClientList.add(((InetSocketAddress)sock.getRemoteSocketAddress()).getAddress().getHostAddress()+":"+((InetSocketAddress)sock.getRemoteSocketAddress()).getPort());
sock.getOutputStream().write("serverOK".getBytes());
sock.setSoTimeout(2000);
vecSocket.add(sock);
// this.sendCmd(InetAddress.getLocalHost().getByName(vecSocket.get(0).toString()));
jLClient.setListData(ClientList.toArray());
for(int i = 0;i<vecSocket.size();i++) { //发送心跳测试 如果客户端断开了连接 服务器关闭连接 或者时接收 或者检测
String[] strs = ((String)ClientList.get(i)).split(":");
this.sendCmd(InetAddress.getByName(strs[0]),6100,"ClientTable&"+strs[0]+"&"+strs[1]); //给每个客户端发送客户连接
System.out.println("客户端的信息已经发送到了客户列表"+Integer.parseInt(strs[1]));
// this.sendCmd(((InetSocketAddress)sock.getRemoteSocketAddress()).getAddress(),((InetSocketAddress)sock.getRemoteSocketAddress()).getPort(),"ClientTable&"+((InetSocketAddress)sock.getRemoteSocketAddress()).getAddress()+"&"+((InetSocketAddress)sock.getRemoteSocketAddress()).getPort());
// String[] str = ((String)ClientList.get(i)).
}
//维护连接的向量
}catch(java.net.SocketTimeoutException e)
{
System.out.println("暂时没有连接");
}catch(java.net.SocketException e)
{
System.out.println("底层异常");
}finally
{
for(int i =0;i<vecSocket.size();i++) { //发送心跳测试 如果客户端断开了连接 服务器关闭连接 或者时接收 或者检测
try{
if(((Socket)vecSocket.get(i)).getInputStream().read() == -1) {
}
}catch(java.net.SocketTimeoutException e) {
vecSocket.remove(i);
ClientList.remove(i);
System.out.println("关闭了套接"+i);
}
}
//向客户发送新的向量
jLClient.setListData(ClientList.toArray());
System.out.println("数量:"+ClientList.size()+"数量:"+vecSocket.size());
}
}
}catch(UnknownHostException e)
{
System.out.println(e.toString());
}catch(IOException e)
{
System.out.println(e.toString());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -