⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 本工程模拟网上社区,其中包括银行,软件销售公司,软件投资公司,茶餐馆,和多个服务器.
💻 JAVA
字号:
package server;

import java.lang.*;
import java.util.*;
import java.sql.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.List;
public class Server extends javax.swing.JFrame implements Runnable{
    public static final int PORT = 2009;   
    private ServerSocket listensocket;
    private boolean shutdown=false;
    private boolean ifsoftlogin=false;
    private boolean ifinvestlogin=false;
    private boolean ifbanklogin=false;
    public String BankIP;
    public String InvestIP;
    public String SoftwareIP;
    public  Vector  vector;             //保存在线用户信息
    public Server() {
        initComponents();
        this.setLocation(400,150);
        try{
            listensocket = new ServerSocket(PORT); 
         }
         catch(Exception e)
         {
             System.out.println("Server initial"+e.toString());
          } 
          vector=new Vector();
          Thread t=new Thread(this);
          t.start();
    }
    public void run()
    {
        while(!shutdown)
        {
            try{
                 Socket socket=listensocket.accept();
                 if(socket!=null)
                 {
                 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
                 PrintWriter  out=new PrintWriter(socket.getOutputStream(),true);    
                 ServerProcess process=new ServerProcess(socket,this,in,out);
                 process.start();
                 }
            }
            catch(Exception e)
            {
                System.out.println("Server Run"+e.toString());
            }
        }
    }
    
    
/////////////////////////////////////////////////////////////////////////////////////////////////  
   // 服务端信息设置
    public boolean IfSoftLogin()
    {
        return ifsoftlogin;
    }
    public boolean IfInvestLogin()
    {
        return ifinvestlogin;
    }
    public boolean IfBankLogin()
    {
        return ifbanklogin;
    }
    public void SetSoftLogin(boolean b)
    {
        ifsoftlogin=b;
    }
    public void SetInvestLogin(boolean b)
    {
        ifinvestlogin=b;
    }
    public void SetBankLogin(boolean b)
    {
        ifbanklogin=b;      
    }
    
    public void AddCleint(String s)
    {
        list.add(s);
    }
    public void MoveClient(int index)
    {
        list.remove(index);
    }
    public void AddWords(String s)
    {
        list1.add(s);
    }
    public void AddAction(String s)
    {
        list2.add(s);
    }
    public int NumWords()
    {
        return  list1.getItemCount();
    }
    public int NumClient()
    {
        return list.getItemCount();
    }
    public int NumAction()
    {
        return list2.getItemCount();
    }
    public String GetWords(int index)
    {
        return list1.getItem(index);
    }
    public String GetClient(int index)
    {
        return list.getItem(index);
    }
    public String GetAction(int index)
    {
        return list2.getItem(index);
    }
 /////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
    private void initComponents() {
        list = new java.awt.List();
        jLabel1 = new javax.swing.JLabel();
        jButton_cancel = new javax.swing.JButton();
        list1 = new java.awt.List();
        jLabel2 = new javax.swing.JLabel();
        list2 = new java.awt.List();
        jLabel3 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("\u670d\u52a1\u5668\u7ba1\u7406");
        list.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                listItemStateChanged(evt);
            }
        });

        jLabel1.setText("\u5df2\u767b\u9646\u7528\u6237");

        jButton_cancel.setText("\u9000\u51fa");
        jButton_cancel.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton_cancelMouseClicked(evt);
            }
        });

        jLabel2.setText("\u804a\u5929\u4fe1\u606f:");

        jLabel3.setText("\u76d1\u542c");

        setJMenuBar(jMenuBar1);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(layout.createSequentialGroup()
                                .add(20, 20, 20)
                                .add(list, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 85, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(layout.createSequentialGroup()
                                .add(30, 30, 30)
                                .add(jLabel1)))
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(layout.createSequentialGroup()
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(list1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 170, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(layout.createSequentialGroup()
                                .add(63, 63, 63)
                                .add(jLabel2)))
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(layout.createSequentialGroup()
                                .add(29, 29, 29)
                                .add(list2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 181, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(layout.createSequentialGroup()
                                .add(81, 81, 81)
                                .add(jLabel3))))
                    .add(layout.createSequentialGroup()
                        .add(33, 33, 33)
                        .add(jButton_cancel)))
                .addContainerGap(28, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel2)
                    .add(jLabel3)
                    .add(jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, list2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, list1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, list, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE))
                .add(19, 19, 19)
                .add(jButton_cancel)
                .add(37, 37, 37))
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void listItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_listItemStateChanged

        int index=list.getSelectedIndex();
        String account=list.getItem(index);     
        for(int i=0;i<vector.size();i++)
         {
               ClientInfo clientinfo=(ClientInfo)vector.get(i);       
               if(account.equals(clientinfo.ReturnAccount()))
               {
                  String message="帐号:"+clientinfo.ReturnAccount()+"\n呢称:"
                          +clientinfo.ReturnName()+"\nIP:"+clientinfo.ReturnIP()+
                          "\n端口:"+clientinfo.ReturnPort();
                   JOptionPane.showMessageDialog(this,message);
                   break;
               }
         }
    }//GEN-LAST:event_listItemStateChanged

    private void jButton_cancelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton_cancelMouseClicked
        shutdown=true;
        try{
            if(listensocket!=null)
            {
                listensocket.close();
            }
        }
        catch(IOException e)
        {
            System.out.println("Server Cancel"+e.toString());
        }   
        this.dispose();
    }//GEN-LAST:event_jButton_cancelMouseClicked

    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jButton_cancel;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JMenuBar jMenuBar1;
    private java.awt.List list;
    private java.awt.List list1;
    private java.awt.List list2;
    // 变量声明结束//GEN-END:variables
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -