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

📄 .#client.java.1.7

📁 用于客户端的程序
💻 7
字号:

/*
 * Created on 2004-11-10
 */
package org.uclab.ums.client;


import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;

import org.uclab.ums.Constants;
import org.uclab.ums.Message;
import org.uclab.ums.MessageImpl;
import org.uclab.ums.UniMessageInterface;
import org.uclab.ums.exception.RegisterFailedException;


public class Client implements UniMessageInterface {
	short id;
	String server;
	Socket socket = null;
	
	public void register(String server, String host)  {
		
		try {
			socket = new Socket(server, Constants.SERVER_PORT);
			Message msg = new MessageImpl((short)0, (short)0, Message.REGISTRY_REQUEST,host);
			msg.writeObject(socket.getOutputStream());			
			Message reply = Message.readObject(socket.getInputStream());
			if (reply.getType()!=Message.REGISTRY_REPLY) throw new RegisterFailedException();
			id = Short.parseShort(reply.getBody());		
			
		} catch (UnknownHostException e) {	
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		} catch (RegisterFailedException e) {			
			e.printStackTrace();
		} finally {
		}

	}
	
	public void send(String receiver, String message) {
		
		try {
			//socket = new Socket(server, Constants.SERVER_PORT);
			Message msg = new MessageImpl(id, (short)0, Message.GETIDBYNAME,receiver);
			msg.writeObject(socket.getOutputStream());			
			Message reply = Message.readObject(socket.getInputStream());			
			short receiverId = Short.parseShort(reply.getBody());
			Message msg2 = new MessageImpl(id, receiverId, Message.NORMAL,message);
			msg2.writeObject(socket.getOutputStream());				
			
		} catch (UnknownHostException e) {	
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		} finally {
			
				//if (socket!=null)socket.close();
			
		}

	}
		
	

	
	public String receive() {
		String result = null;
		
		try {
			//socket = new Socket(server, Constants.SERVER_PORT);
			Message msg = new MessageImpl(id, (short)0, Message.CHECK, " ");
			msg.writeObject(socket.getOutputStream());
			Message reply = Message.readObject(socket.getInputStream());			
			result = reply.getBody();
			
		} catch (UnknownHostException e) {	
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		} finally {
			
		}
		return result;
	}
	
	
	public void quit() {
		try {			
			Message msg = new MessageImpl(id, (short)0, Message.QUIT,String.valueOf(id));
			msg.writeObject(socket.getOutputStream());			
			socket.close();			
		} catch (UnknownHostException e) {	
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		} finally {	
			
				//if (socket!=null)socket.close();			
		}
	}
	
	public static void main(String[] args) {
		Client client = new Client();
		try {			
			MainFrame frame = new MainFrame(client);
			frame.show();
			
		} catch (Exception e) {			
			e.printStackTrace();
		}
	}

	
}

class MainFrame extends JFrame {

	private javax.swing.JPanel jContentPane = null;

	private javax.swing.JToolBar jToolBar = null;
	private javax.swing.JTextArea jTextArea = null;
	private javax.swing.JTextField jTextField = null;
	private javax.swing.JButton jButton = null;
	private javax.swing.JButton jButton1 = null;
	private javax.swing.JTextField jTextField1 = null;
	private javax.swing.JLabel jLabel = null;
	private javax.swing.JCheckBox jCheckBox = null;
	private javax.swing.JLabel jLabel1 = null;
	private javax.swing.JTextField jTextField2 = null;
	private javax.swing.JButton jButton2 = null;
	private javax.swing.JLabel jLabel2 = null;
	private javax.swing.JTextField jTextField3 = null;
	private javax.swing.JButton jButton3 = null;
	
	Client client;
	/**
	 * This is the default constructor
	 */
	public MainFrame(Client client) {
		super();
		this.client = client;
		initialize();
	}
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(367, 254);
		this.setContentPane(getJContentPane());
	}
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(new java.awt.FlowLayout());
			jContentPane.add(getJTextArea(), null);
			jContentPane.add(getJLabel2(), null);
			jContentPane.add(getJTextField3(), null);
			jContentPane.add(getJLabel1(), null);
			jContentPane.add(getJTextField2(), null);
			jContentPane.add(getJButton2(), null);
			jContentPane.add(getJTextField(), null);
			jContentPane.add(getJLabel(), null);
			jContentPane.add(getJTextField1(), null);
			jContentPane.add(getJButton(), null);
			jContentPane.add(getJToolBar(), null);
			jContentPane.add(getJButton1(), null);
			jContentPane.add(getJCheckBox(), null);
			jContentPane.add(getJButton3(), null);
		}
		return jContentPane;
	}
	/**
	 * This method initializes jToolBar
	 * 
	 * @return javax.swing.JToolBar
	 */
	private javax.swing.JToolBar getJToolBar() {
		if(jToolBar == null) {
			jToolBar = new javax.swing.JToolBar();
		}
		return jToolBar;
	}
	/**
	 * This method initializes jTextArea
	 * 
	 * @return javax.swing.JTextArea
	 */
	private javax.swing.JTextArea getJTextArea() {
		if(jTextArea == null) {
			jTextArea = new javax.swing.JTextArea();
			jTextArea.setWrapStyleWord(true);
			jTextArea.setColumns(50);
			jTextArea.setRows(4);
			jTextArea.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jTextArea;
	}
	/**
	 * This method initializes jTextField
	 * 
	 * @return javax.swing.JTextField
	 */
	private javax.swing.JTextField getJTextField() {
		if(jTextField == null) {
			jTextField = new javax.swing.JTextField();
			jTextField.setColumns(50);
			jTextField.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jTextField;
	}
	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private javax.swing.JButton getJButton() {
		if(jButton == null) {
			jButton = new javax.swing.JButton();
			jButton.setText("send");
			jButton.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
			jButton.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					client.send(jTextField1.getText(), jTextField.getText());
					jTextArea.append(jTextField.getText()); 
					jTextField.setText("");
				}
			});
		}
		return jButton;
	}
	/**
	 * This method initializes jButton1
	 * 
	 * @return javax.swing.JButton
	 */
	private javax.swing.JButton getJButton1() {
		if(jButton1 == null) {
			jButton1 = new javax.swing.JButton();
			jButton1.setText("receive");
			jButton1.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
			jButton1.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					jTextArea.append(client.receive()); 
				}
			});
		}
		return jButton1;
	}
	/**
	 * This method initializes jTextField1
	 * 
	 * @return javax.swing.JTextField
	 */
	private javax.swing.JTextField getJTextField1() {
		if(jTextField1 == null) {
			jTextField1 = new javax.swing.JTextField();
			jTextField1.setColumns(10);
			jTextField1.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jTextField1;
	}
	/**
	 * This method initializes jLabel
	 * 
	 * @return javax.swing.JLabel
	 */
	private javax.swing.JLabel getJLabel() {
		if(jLabel == null) {
			jLabel = new javax.swing.JLabel();
			jLabel.setText("receiver:");
			jLabel.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jLabel;
	}
	/**
	 * This method initializes jCheckBox
	 * 
	 * @return javax.swing.JCheckBox
	 */
	private javax.swing.JCheckBox getJCheckBox() {
		if(jCheckBox == null) {
			jCheckBox = new javax.swing.JCheckBox();
			jCheckBox.setText("receive every second");
			jCheckBox.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jCheckBox;
	}
	/**
	 * This method initializes jLabel1
	 * 
	 * @return javax.swing.JLabel
	 */
	private javax.swing.JLabel getJLabel1() {
		if(jLabel1 == null) {
			jLabel1 = new javax.swing.JLabel();
			jLabel1.setText("input your name here:");
			jLabel1.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jLabel1;
	}
	/**
	 * This method initializes jTextField2
	 * 
	 * @return javax.swing.JTextField
	 */
	private javax.swing.JTextField getJTextField2() {
		if(jTextField2 == null) {
			jTextField2 = new javax.swing.JTextField();
			jTextField2.setColumns(20);
			jTextField2.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
			jTextField2.setText("liuyang");
		}
		return jTextField2;
	}
	/**
	 * This method initializes jButton2
	 * 
	 * @return javax.swing.JButton
	 */
	private javax.swing.JButton getJButton2() {
		if(jButton2 == null) {
			jButton2 = new javax.swing.JButton();
			jButton2.setText("register");
			jButton2.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
			jButton2.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					client.register(jTextField3.getText(), jTextField2.getText());
				}
			});
		}
		return jButton2;
	}
	/**
	 * This method initializes jLabel2
	 * 
	 * @return javax.swing.JLabel
	 */
	private javax.swing.JLabel getJLabel2() {
		if(jLabel2 == null) {
			jLabel2 = new javax.swing.JLabel();
			jLabel2.setText("input server address here:");
			jLabel2.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
		}
		return jLabel2;
	}
	/**
	 * This method initializes jTextField3
	 * 
	 * @return javax.swing.JTextField
	 */
	private javax.swing.JTextField getJTextField3() {
		if(jTextField3 == null) {
			jTextField3 = new javax.swing.JTextField();
			jTextField3.setColumns(20);
			jTextField3.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
			jTextField3.setText("server");
		}
		return jTextField3;
	}
	/**
	 * This method initializes jButton3
	 * 
	 * @return javax.swing.JButton
	 */
	private javax.swing.JButton getJButton3() {
		if(jButton3 == null) {
			jButton3 = new javax.swing.JButton();
			jButton3.setFont(new java.awt.Font("Lucida Console", java.awt.Font.PLAIN, 12));
			jButton3.setText("exit");
			jButton3.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					client.quit();
					System.exit(0);
				}
			});
		}
		return jButton3;
	}
}  //  @jve:visual-info  decl-index=0 visual-constraint="10,10"




⌨️ 快捷键说明

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