📄 abc.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 + -