View Single Post
  #1 (permalink)  
Old 04-28-2008, 07:19 AM
Zosden's Avatar
Zosden Zosden is offline
Senior Member
 
Join Date: Apr 2008
Posts: 354
Zosden is on a distinguished road
Instant Messaging Program
I want to try to make an instant messaging program. I'm having problems with it, and was wondering if someone could help me.

View class:

Code:
import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class View extends JFrame implements ActionListener { Client myClient; Server myServer; private String myMessage; private JTextField myMessageTextField; private JTextField mySendMessageTextField; private JButton myEnterButton; private boolean isClient; public View(boolean isClient) { this.isClient = isClient; if(isClient) { myClient = new Client(this); } else { myServer = new Server(this); } Container contentPane = this.getContentPane(); this.setTitle("Instant Messaging"); this.setLayout(new GridLayout(3, 1)); this.setSize(300, 300); this.setLocationRelativeTo(null); myMessageTextField = new JTextField(); myMessageTextField.setEditable(false); contentPane.add(myMessageTextField); mySendMessageTextField = new JTextField(); contentPane.add(mySendMessageTextField); myEnterButton = new JButton("Send"); myEnterButton.addActionListener(this); contentPane.add(myEnterButton); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public String getText() { return mySendMessageTextField.getText(); } public void setMessage(String fromServer) { myMessage += "\n" + fromServer; myMessageTextField.setText(myMessage); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource().equals(myEnterButton)); { if(isClient) { myClient.setText( this.mySendMessageTextField.getSelectedText()); } else { myServer.setText( this.mySendMessageTextField.getSelectedText()); } } } }
Client class:

Code:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client implements Runnable { Socket myClientSocket; PrintWriter out; BufferedReader in; String fromServer; String fromUser; View myView; Thread myThread; public Client(View aView) { try { myClientSocket = new Socket("JordanS", 4444); out = new PrintWriter(myClientSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(myClientSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("Don't know about host: taranis."); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: taranis."); System.exit(1); } myView = aView; this.start(); } public void start() { myThread = new Thread(this); myThread.start(); } public void stop() { myThread = null; } public static void main(String[] args) { View aView = new View(true); } @Override public void run() { while(true) { try { if((fromServer = in.readLine()) != null) { myView.setMessage(fromServer); } String sendText = this.getText(); if (sendText != ""); { out.println(fromUser); fromUser = ""; } } catch (IOException e) { this.closeConnection(); } } } private String getText() { return fromUser; } public String setText(String aMessage) { return fromUser; } private void closeConnection() { try { out.close(); in.close(); myClientSocket.close(); System.exit(0); } catch (IOException e) { e.printStackTrace(); } } }
Server Class:

Code:
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; public class Server implements Runnable { ServerSocket myServerSocket; PrintWriter out; BufferedReader in; String fromServer; String fromUser; View myView; Socket clientSocket; Thread myThread; public Server(View aView) { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(1); } clientSocket = null; try { clientSocket = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } try { out = new PrintWriter(clientSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } myView = aView; this.start(); } public void start() { myThread = new Thread(this); myThread.start(); } public void stop() { myThread = null; } public static void main(String[] args) { View aView = new View(false); } @Override public void run() { while(true) { try { if((fromServer = in.readLine()) != null) { myView.setMessage(fromServer); } String sendText = this.getText(); if (sendText != ""); { out.println(fromUser); fromUser = ""; } } catch (IOException e) { System.exit(0); } try { Thread.sleep(0); } catch(Exception e) { e.printStackTrace(); } } } private String getText() { return fromUser; } public String setText(String aMessage) { return fromUser; } private void closeConnection() { try { out.close(); in.close(); clientSocket.close(); myServerSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }
__________________
My IP address is 127.0.0.1

Last edited by Zosden : 04-28-2008 at 07:25 AM.
Reply With Quote
Sponsored Links