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

📄 abc.java

📁 java编写的代理服务器软件
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class abc extends WindowAdapter implements ActionListener
    {
    Frame f;
    Label t1,t2,t3,t4;
    TextField tf1,tf2,tf3,tf4;
    TextArea jLog;
    Button b1,b2,b3;
    Checkbox cb1,cb2;
    Panel p1,p2;
    String sMsg,linesep;
    ListenSocket listen;
//    ListenSocket x;
    
    ServerSocket serverSocket;
    public void display()
    {
        f = new Frame("ProxyServer");
        f.setSize(400,300);
        f.setLocation(200,140);                      //设置窗口初始位置
        f.setBackground(Color.lightGray);
        p1=new Panel();
        p1.setLayout(new FlowLayout(FlowLayout.LEFT));
        f.add(p1,"North");
        
        
        t1=new Label("服务端口");
        p1.add(t1);
        tf1 = new TextField("8080",5);
        tf1.setEditable(true);                   //允许编辑
        p1.add(tf1);
        t2=new Label("允许的人数上限");
        p1.add(t2);
        tf2=new TextField("50",2);
        tf2.setEditable(true);
        p1.add(tf2);
        b1 = new Button("启动");
        p1.add(b1);
        b1.addActionListener(this);           //为按钮b1注册事件监听程序
        
        b2 = new Button("关闭");
        p1.add(b2);
        b2.addActionListener(this);      
        
   
 
 
 
 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = f.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    f.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

    
 
 
 
 
   ////////////////////
  //      cb1 = new Checkbox("Bold");            //创建复选框
    //    cb2 = new Checkbox("Italic");
      //  p1.add(cb1);
   //     p1.add(cb2);
     //   cb1.addItemListener(this);             //注册复选框的事件监听程序
     //   cb2.addItemListener(this);
     /////////////////////
  //     cb1 = new Checkbox("Bold"); 
    //   p1.add(cb1);
      // cb1.addItemListener(this);  
       
  /*      t3=new Label("二级IP");
        p2.add(t3);
        tf3=new TextField("61.55.134.196",15);
        tf3.setEditable(true);                   //允许编辑
        p2.add(tf3);
        t4=new Label("port");
        p2.add(t4);
        tf4=new TextField("80",5);
        tf4.setEditable(true);                   //允许编辑
        p2.add(tf4);
    */    
        
          jLog=new TextArea("",16,36);
          jLog.setEditable(false);
          f.add(jLog);
//          ta1.add("服务器日志:");
          f.addWindowListener(new WinClose());   //为框架f注册事件监听程序
          f.setVisible(true);
    }
    
    public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==b1){
			b1.setEnabled(false);
			startServer();
		}
		else{
			stopServer();
			b1.setEnabled(true);
		}
	}
	
	void startServer()
		{
			    int port=(new Integer(tf1.getText())).intValue();
            	int user=(new Integer(tf2.getText())).intValue(); 
    //       	    ta1.add("服务器端口:"+tf1.getText());
     //       	ta1.add("同时允许人数:"+tf2.getText());
            	
       //     	Server.MAXUSER=user;

            	Server.log=System.out;

                Server.logging=false;
            try
            {
                serverSocket=new ServerSocket(port,user);
                linesep=System.getProperty("line.separator");
				sMsg="HTTP Proxy Server  Start at "+serverSocket.getInetAddress().getLocalHost()+":"+
				serverSocket.getLocalPort()+linesep;
				jLog.append(sMsg);
				jLog.setCaretPosition(jLog.getText().length());
				System.out.print(sMsg);
				Thread.sleep(500);
				listen=new ListenSocket(serverSocket,this);
				listen.setRunning(true);
             
              /*   while(true)
                {
                /*	public void actionPerformed(ActionEvent e)
                	{
                		if(e.getSource()==b2)
                		{
                			stopServer();
                			b1.setEnabled();
                			break;
                			k=true;
                		}
                	
                	Socket s=ss.accept();
                	Server p=new Server(s);
                	Thread t=new Thread(p);                	
                	t.start();
                
                  //  }*/
              //  }
                
               
            }
              catch (Exception ex){}
     }
              
              
     void stopServer()
     {
     	try
     	{
                Thread.sleep(500);
				listen.setRunning(false);
				serverSocket.close();
				sMsg="HTTP Proxy Server Stop "+linesep;
				jLog.append(sMsg);
				jLog.setCaretPosition(jLog.getText().length());
				System.out.println(sMsg);
     	}catch (Exception ex){}
     	  	
     	  }
     
            
    	public static void main(String args[]){
    	
		abc frame=new abc();
		try{
		
			frame.display();
			}
			catch(Exception e){
				e.printStackTrace();
			}
         JSplashWindow splash = new JSplashWindow();
        splash.start();
		}

}   

    class WinClose extends WindowAdapter
{
    public void windowClosing(WindowEvent e)
    {     //覆盖WindowAdapter类中同名方法,单击窗口关闭按钮时产生该事件
        System.exit(0);                       //结束程序运行,关闭窗口
    }
}

⌨️ 快捷键说明

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