📄 .#client.java.1.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 + -