www.pudn.com > talk-plugins.rar > View.java
package talkClient;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.part.ViewPart;
public class View extends ViewPart {
public static final String ID = "TalkClient.view";
Text text;
Button sendButton;
public ServerSocket server_sock;
int port = 1861;
public void createPartControl(Composite parent) {
Composite top = new Composite(parent, SWT.NONE);
top.setLayout(new FillLayout(-1));
// message contents
text = new Text(top, SWT.MULTI | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL);
text.setText("Listening ...");
text.setLayoutData(new GridData(GridData.FILL_BOTH));
sendButton = new Button(top, SWT.NONE);
sendButton.setText("Send message");
sendButton.setLayoutData(new GridData(GridData.FILL_BOTH));
sendButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String ip_str = "";
String message = "";
// DESTINATION IP INPUT
InputDialog dlg = new InputDialog(Display.getCurrent()
.getActiveShell(), "Destination", "IP Address", "",
null);
if (dlg.open() == Window.OK) {
ip_str = dlg.getValue().trim();
// MESSAGE INPUT
InputDialog dlg1 = new InputDialog(Display.getCurrent()
.getActiveShell(), "Destination", "Message", "",
null);
if (dlg1.open() == Window.OK) {
message = dlg1.getValue().trim();
// SOCKET CONNECTION
Socket req_socket = null;
try {
req_socket = new Socket(ip_str, port);
} catch (UnknownHostException e1) {
MessageDialog.openError(Display.getCurrent()
.getActiveShell(), "Error",
"Connection failed!");
} catch (IOException e1) {
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(message);
}
}
}
});
// START LISTENING THREAD
new ListenThread().start();
}
public void setFocus() {
}
// LISTENING THREAD
class ListenThread extends Thread {
public void run() {
try {
server_sock = new ServerSocket(port); // Server
// socket.
} catch (IOException e1) {
e1.printStackTrace();
}
while (true) {
Socket accepted_sock = null;
String ip_peer = "";
try {
accepted_sock = server_sock.accept();
ip_peer = accepted_sock.getInetAddress().toString();
System.out.println(ip_peer);
} catch (IOException e2) {
e2.printStackTrace();
}
// GET DATA FROM THE RECEIVED SOCKET AND SHOW ON GUI
String data_str = "";
BufferedReader br_in = null;
try {
br_in = new BufferedReader(new InputStreamReader(
accepted_sock.getInputStream()));
data_str = br_in.readLine();
System.out.println(data_str);
} catch (IOException e2) {
e2.printStackTrace();
}
JFrame jframe = new JFrame();
JOptionPane.showMessageDialog(jframe, "Message From: " + ip_peer + " >> " + data_str);
// MessageDialog
// .openInformation(Display.getCurrent().getActiveShell(),
// "Message From: " + ip_peer, data_str);
}
}
}
}