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

📄 network.java

📁 很原始的代码
💻 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 + -