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

📄 mp_server.java

📁 JAVA做的简单手机短信平台
💻 JAVA
字号:

import javax.swing.*;

import java.nio.*;
import java.nio.channels.FileChannel;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class MP_Server extends JFrame implements ActionListener{

	JButton bclear = new JButton("Clear");
	JButton bclose = new JButton("Close");

    JLabel statusLabel = new JLabel("current status:");
	JLabel detailLabel = new JLabel("last message details:");
	JLabel numberotLabel = new JLabel("number of messages over time:");
	JLabel numberppLabel = new JLabel("number of messages per phone number:");
	JLabel physizeLabel = new JLabel("physical size of messages received:");
    JLabel cnumberLabel = new JLabel("current number:");

    public static JTextField numberot = new JTextField(20);
    public static JTextField numberpp = new JTextField(20);
    public static JTextField physize = new JTextField(20);
	
    public static JTextArea status = new JTextArea(6,20);
    public static JTextArea detail = new JTextArea(6,20);
    JScrollPane statusSc = new JScrollPane(status,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
	JScrollPane detailSc = new JScrollPane(detail,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

	public static JComboBox currentnumber = new JComboBox(new String[]{new String("0000")});
	
	public static Vector TheMessageServerVector= new Vector(100,100);
	public static Vector TheMessageServerNumberVector= new Vector(10,10);
	public static int messagenumber=0;
	public static long messagesize=0;
	
	public MP_Server(){
		super ("Message Server");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(300,225,260,550);
		JPanel pane = new JPanel();
		
		pane.add(statusLabel);
		pane.add(statusSc);
		pane.add(detailLabel);
		pane.add(detailSc);
		pane.add(numberotLabel);
		pane.add(numberot);
		pane.add(numberppLabel);
		pane.add(numberpp);
		pane.add(physizeLabel);
		pane.add(physize);
		currentnumber.setEditable(true);
		pane.add(cnumberLabel);
		pane.add(currentnumber);
		pane.add(bclear);
		pane.add(bclose);

		bclear.addActionListener(this);
		bclose.addActionListener(this);
		
		setContentPane(pane);
		setVisible(true);

		}
	
	
	public void actionPerformed(ActionEvent e)
	{
		if (e.getSource().equals(bclear))
		{
			status.setText("\0");
		}
		if (e.getSource().equals(bclose))	
		{
			this.storemessage();
			System.exit(0);
		}
	}
	public void storemessage()
	{
		String dirname ="d:/dw/workspace/Phone Message sending";
		String filename ="data.txt";
		int datanumber=TheMessageServerVector.size()*3;
		String[] data = new String[datanumber];
		for (int i=0,j=0;i<TheMessageServerVector.size();i++)
		{
			data[j]=((Message)TheMessageServerVector.get(i)).getmynumber();
			j++;
			data[j]=((Message)TheMessageServerVector.get(i)).getMessagetext();
			j++;
			data[j]=((Message)TheMessageServerVector.get(i)).getoppositenumber();
			j++;
		}
		for(int j=0; j<datanumber;j++)
		{
		File dir = new File (dirname);
		if(!dir.exists())
		{
			if(!dir.mkdir())
			{
				System.err.println("Cannot create directory: "+dirname);
				System.exit(1);
			}
		}
		else if (!dir.isDirectory())
		{
			System.err.println(dirname+" is not a directory !");
			System.exit(1);
		}
		// Create the filestream
		File aFile = new File(dir,filename);
		FileOutputStream outputFile=null;
		try
		{
			outputFile = new FileOutputStream(aFile, true);
			System.out.println("File stream created successfully !");
		}
		catch(FileNotFoundException e)
		{
			e.printStackTrace(System.err);
		}
		//Create the file output stream channel
		FileChannel outChannel = outputFile.getChannel();
		ByteBuffer buf =ByteBuffer.allocate(1024);
		
			for(int i=0; i<data[j].length();i++)
			{
				buf.putChar(data[j].charAt(i));
			}
			
			buf.flip();
			//Writ the file
			try
			{
				outChannel.write(buf);
				
				outputFile.close();
			}
			catch(IOException e)
			{
				e.printStackTrace(System.err);
			}
		}
		System.exit(0);
	}
	
	public static void main(String args[]) 
	{
		MP_Server ms=new MP_Server();
		ServerSocket serverSocket = null;
		ms.getContentPane().setBackground(Color.ORANGE);
		try 
		{
			serverSocket = new ServerSocket(5050);
			MP_Server.status.setText(MP_Server.status.getText()+
					"Server has started listening on port 5050\n");
		}
		catch (IOException e)
			
		{
			MP_Server.status.setText(MP_Server.status.getText()+
					"Error: Cannot listen on port 5050: " + e+"\n");
			System.exit(1);
		} 
		while (true) // infinite loop wait for client
		{
			Socket clientSocket = null;
			try 
			{
				//waits here (forever) until a client connects
				clientSocket = serverSocket.accept(); 
				MP_Server.status.setText(MP_Server.status.getText()+
						"Server has just accepted socketconnection from a client\n");
			}
			catch (IOException e)
			{
				MP_Server.status.setText(MP_Server.status.getText()+
						"Accept failed: 5050 " + e+"\n");
				break;
			}
			//		Create the Handle Connection object use
			Handleconnection con = new Handleconnection(clientSocket);
			if (con == null) //If it failed send and error message
			{
				try
				{
					ObjectOutputStream os = new ObjectOutputStream(clientSocket.getOutputStream());
					os.writeObject("error: Cannot open socket thread");
					os.flush();
					os.close();
				}
				catch (Exception ex)  //failed to even send an error message
				{
					MP_Server.status.setText(MP_Server.status.getText()
								+"Cannot send error back to client:  5050 " + ex);
				}
			}
			else { 
				
				con.start();
				}//otherwise we have not failed to create the HandleConnection object
				//run it now.
		}
	}	
}

⌨️ 快捷键说明

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