📄 network.java
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
public class network extends JFrame implements ActionListener{
Container con=getContentPane();
JTextField hosts=new JTextField(15);
JTextField ports=new JTextField(5);
public static JTextArea info=new JTextArea(10,10);
JLabel labelport=new JLabel("端口");
JLabel labelhost=new JLabel("主机");
JLabel name=new JLabel("选择工作模式");
JButton btnok=new JButton("确定");
int style=-1;//工作模式
Socket socket;
int work=1;;
int port=-1;
InetAddress hostAddress;
public static ServerSocket serversocket;
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
JMenuBar menubar=new JMenuBar();
JMenu menu=new JMenu("控制");
JMenuItem servermenu=new JMenuItem("服务器");
JMenuItem clientmenu=new JMenuItem("客户机");
JMenu menu1=new JMenu("选择程序");
JMenuItem pro1menu=new JMenuItem("12.3");
JMenuItem pro2menu=new JMenuItem("12.4");
JMenuItem pro3menu=new JMenuItem("12.7");
void bcs(GridBagConstraints gbc,int gx,int gy,int gw,int gh,int wx,int wy)
{
gbc.gridx=gx;
gbc.gridy=gy;
gbc.gridwidth=gw;
gbc.gridheight=gh;
gbc.weightx=wx;
gbc.weighty=wy;
}
public network()
{
con.setSize(600,600);
gbc.fill=GridBagConstraints.NONE;
gbc.anchor=GridBagConstraints.WEST;
con.setLayout(gbl);
bcs(gbc,0,0,1,1,100,1);
gbc.gridwidth=GridBagConstraints.REMAINDER;
gbl.setConstraints(menubar,gbc);
menu.add(servermenu);
servermenu.addActionListener(this);
menu.add(clientmenu);
clientmenu.addActionListener(this);
menubar.add(menu);
con.add(menubar);
menu1.add(pro1menu);
pro1menu.addActionListener(this);
menu1.add(pro2menu);
pro2menu.addActionListener(this);
menu1.add(pro3menu);
pro3menu.addActionListener(this);
menubar.add(menu1);
gbc.anchor=GridBagConstraints.CENTER;
gbc.gridwidth=GridBagConstraints.REMAINDER;
bcs(gbc,0,1,0,1,50,100);
gbl.setConstraints(name,gbc);
con.add(name);
bcs(gbc,0,2,1,1,50,100);
gbl.setConstraints(labelhost,gbc);
con.add(labelhost);
bcs(gbc,GridBagConstraints.RELATIVE,2,1,1,100,100);
gbl.setConstraints(hosts,gbc);
con.add(hosts);
hosts.setEnabled(false);
bcs(gbc,0,3,1,1,50,100);
gbl.setConstraints(labelport,gbc);
con.add(labelport);
bcs(gbc,GridBagConstraints.RELATIVE,3,1,1,100,100);
gbl.setConstraints(ports,gbc);
con.add(ports);
ports.setEnabled(false);
gbc.anchor=GridBagConstraints.CENTER;
gbc.gridwidth=GridBagConstraints.REMAINDER;
bcs(gbc,0,4,0,1,0,0);
gbl.setConstraints(btnok,gbc);
con.add(btnok);
btnok.addActionListener(this);
bcs(gbc,0,5,0,1,200,600);
gbc.fill=GridBagConstraints.BOTH;
gbc.anchor=GridBagConstraints.CENTER;
gbc.gridwidth=GridBagConstraints.REMAINDER;
gbl.setConstraints(info,gbc);
con.add(info);
info.setEnabled(false);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
} });
}
public void server(){
Socket clientsocket;
try{
while(true){
port=new Integer(ports.getText()).intValue();
if(port<0||port>65555)
JOptionPane.showMessageDialog(null,"端口号不合法","火山灰作品",JOptionPane.WARNING_MESSAGE);
else
break;
}
serversocket=new ServerSocket(port);
try{
clientsocket=serversocket.accept();
(new ServerThread(clientsocket,work,con)).start();
}finally{
serversocket.close();
}
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(null,"端口号必须","火山灰作品",JOptionPane.WARNING_MESSAGE);
}catch(Exception e){
}
}
public void client(){
try{
port=new Integer(ports.getText()).intValue();
hostAddress=InetAddress.getByName(hosts.getText());
socket=new Socket(hostAddress,port);
if(work==1)
try{
socket.setSoTimeout(5*1000);
InputStream in=socket.getInputStream();
OutputStream out=socket.getOutputStream();
OutputStreamWriter outs=new OutputStreamWriter(out);
BufferedWriter outfile=new BufferedWriter(outs);
Date date=new Date();
for(int i=0;i<100000;i++)
{
if(i%1000==0)
outfile.write(date.toString()+"\n");
}
outfile.close();
}finally{
socket.close();}
if(work==2)
try{
socket.setSoTimeout(5*1000);
InputStream in=socket.getInputStream();
String infomation;
OutputStream out=socket.getOutputStream();
OutputStreamWriter outs=new OutputStreamWriter(out);
BufferedWriter outfile=new BufferedWriter(outs);
try{
InputStreamReader ins=new InputStreamReader(in);
BufferedReader infile=new BufferedReader(ins);
FileWriter file=new FileWriter("client.txt");
BufferedWriter filewrite=new BufferedWriter(file);
infomation=infile.readLine();
while(infomation!=null)
{
filewrite.write(infomation+" ");
filewrite.write(String.valueOf(System.currentTimeMillis())+" \n");
filewrite.write(String.valueOf(((new Long(infomation).longValue())-System.currentTimeMillis())/1000));
filewrite.newLine();
infomation=infile.readLine();
}
filewrite.write("someok");
filewrite.close();
}finally{
socket.close();}
}catch(Exception e){}
if(work==0)
try{
socket.setSoTimeout(5*1000);
InputStream in=socket.getInputStream();
String infomation;
OutputStream out=socket.getOutputStream();
OutputStreamWriter outs=new OutputStreamWriter(out);
BufferedWriter outfile=new BufferedWriter(outs);
String str=showslectbox();
try{
InputStreamReader ins=new InputStreamReader(in);
BufferedReader infile=new BufferedReader(ins);
FileWriter file=new FileWriter(str);
BufferedWriter filewrite=new BufferedWriter(file);
infomation=infile.readLine();
while(infomation!=null)
{
filewrite.write(infomation);
filewrite.newLine();
infomation=infile.readLine();
}
filewrite.close();
}finally{
socket.close();
}
}catch(Exception e){}
}catch(Exception ev){}
}
public String showslectbox(){
String s;
try{
s=JOptionPane.showInputDialog(null,"请输入要下载的文件名","火山灰作品",
JOptionPane.QUESTION_MESSAGE);
if(s.equals(""))
{
JOptionPane.showMessageDialog(null,"文件名必须","火山灰作品",JOptionPane.WARNING_MESSAGE);
return showslectbox();
}
}catch(Exception e){
JOptionPane.showMessageDialog(null,"文件名必须","火山灰作品",JOptionPane.WARNING_MESSAGE);
return showslectbox();
}
return s;
}
public void actionPerformed(ActionEvent e){
Object source=e.getSource();
if(source==btnok)
{
if(style==0)
client();
if(style==1)
server();
}
if(source==clientmenu)
{
ports.setEnabled(true);
hosts.setEnabled(true);
name.setText("客户机模式");
style=0;
}
if(source==servermenu)
{
ports.setEnabled(true);
hosts.setEnabled(false);
name.setText("服务器模式");
info.append("请输入监听的端口号\n");
style=1;
}
if(source==pro1menu){work=0;}
if(source==pro2menu){work=1;}
if(source==pro3menu){work=2;}
}
public static void main(String[] args)
{
network window=new network();
window.setTitle("网络工作标准工具");
window.pack();
window.setVisible(true);
}
}
class ServerThread extends Thread{
Socket clientsocket;
int work;
Container con;
public ServerThread(Socket clientsocket,int work,Container con)
{
super();
this.clientsocket=clientsocket;
this.work=work;
this.con=con;
}
public void run()
{
InputStream in;
OutputStream out;
String infomation;
int byteread;
int begin;
if(work==1)
try{
out=clientsocket.getOutputStream();
try{
in=clientsocket.getInputStream();
InputStreamReader ins=new InputStreamReader(in);
BufferedReader infile=new BufferedReader(ins);
FileWriter file=new FileWriter("server.txt");
BufferedWriter filewrite=new BufferedWriter(file);
infomation=infile.readLine();
while(infomation!=null)
{
filewrite.write(infomation);
filewrite.newLine();
infomation=infile.readLine();
}
filewrite.write("someok");
filewrite.close();
}finally{
clientsocket.close();}
}catch(Exception e){}
if(work==2)
try{
try{
in=clientsocket.getInputStream();
out=clientsocket.getOutputStream();
OutputStreamWriter outs=new OutputStreamWriter(out);
BufferedWriter outfile=new BufferedWriter(outs);
int i=5;
while(i-->0)
{
outfile.write(String.valueOf(System.currentTimeMillis())+"\n");
try{
Thread.currentThread().sleep(1000);
}catch(InterruptedException e){}
}
outfile.close();
}finally{
clientsocket.close();}
}
catch(Exception e){}
if(work==0)
try{
try{
in=clientsocket.getInputStream();
InputStreamReader ins=new InputStreamReader(in);
BufferedReader infile=new BufferedReader(ins);
JFileChooser open=new JFileChooser();
open.showOpenDialog(con);
out=clientsocket.getOutputStream();
OutputStreamWriter outs=new OutputStreamWriter(out);
BufferedWriter outfile=new BufferedWriter(outs);
File f=open.getSelectedFile();
FileReader file=new FileReader(f.getAbsolutePath());
BufferedReader buff=new BufferedReader(file);
String line=buff.readLine();
while(line!=null)
{
outfile.write(line+"\n");
line=buff.readLine();
}
outfile.close();
buff.close();
}finally{
clientsocket.close();}
}
catch(Exception e){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -