📄 logonaction.java
字号:
package talkClient;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import org.eclipse.jface.action.Action;import org.eclipse.jface.dialogs.InputDialog;import org.eclipse.jface.dialogs.MessageDialog;import org.eclipse.jface.window.Window;import org.eclipse.swt.widgets.Display;import org.eclipse.ui.IWorkbenchWindow;public class LogOnAction extends Action { private final IWorkbenchWindow window; LogOnAction(String text, IWorkbenchWindow window) { super(text); this.window = window; // The id is used to refer to the action in a menu or toolbar setId(ICommandIds.CMD_LOG_ON); // Associate the action with a pre-defined command, to allow key // bindings. setActionDefinitionId(ICommandIds.CMD_LOG_ON); setImageDescriptor(talkClient.TalkClientPlugin .getImageDescriptor("/icons/sample3.gif")); } public void run() { // LOG ON String ip_str = ""; String password = ""; // GET IP InetAddress ip = null; try { // [NAME]/[ADDRESS] ip = InetAddress.getLocalHost(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } ip_str = ip.toString().split("/")[1]; // IP INPUT InputDialog dlg = new InputDialog( Display.getCurrent().getActiveShell(), "Log On", "IP Address", ip_str, null); if (dlg.open() == Window.OK) { ip_str = dlg.getValue().trim(); // PASSWORD INPUT InputDialog dlg1 = new InputDialog(Display.getCurrent() .getActiveShell(), "Log On", "Password", "", null); if (dlg1.open() == Window.OK) { password = dlg1.getValue().trim(); System.out.println(ip_str); System.out.println(password); // REMOTE LOG ON switch (logOn(ip_str, password)) { case 0: MessageDialog.openInformation(Display.getCurrent() .getActiveShell(), "Information", "Log on sucess."); break; case 1: MessageDialog .openError(Display.getCurrent().getActiveShell(), "Error", "You have not registered.\nPlease contact with administrator."); break; case 2: MessageDialog.openError(Display.getCurrent() .getActiveShell(), "Error", "Wrong password."); break; case 3: MessageDialog.openInformation(Display.getCurrent() .getActiveShell(), "Information", "Already log on."); break; } } } } private int logOn(String ip_str, String password) { // MAKE THE REQUEST PACKAGE // [0]::[IP]::[PASSWORD] String logOn_req = "0::" + ip_str + "::" + password; // SOCKET CONNECTION Socket req_socket = null; try { req_socket = new Socket("172.18.80.34", 1860); } catch (UnknownHostException e) { MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", "Connection failed!"); } catch (IOException e) { MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", "Connection failed!"); } PrintWriter pw = null; try { pw = new PrintWriter(req_socket.getOutputStream(), true); } catch (IOException e2) { e2.printStackTrace(); } // SENT THE PACKAGE pw.println(logOn_req); // RECEIVE THE RESPONSE FROM // 0 -- SUCCESS // 1 -- IP NOT EXIST, SO NEED REGISTER // 2 -- PASSWORD WRONG // 3 -- ALREADY LOG ON String logOn_response = ""; BufferedReader br_in = null; try { br_in = new BufferedReader(new InputStreamReader(req_socket .getInputStream())); logOn_response = br_in.readLine(); br_in.close(); pw.close(); req_socket.close(); } catch (IOException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } System.out.println(logOn_response); return Integer.parseInt(logOn_response); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -