Solved

Showing the connection status on server side interface  and also adding images to client side interface

Posted on 2004-10-05
2
227 Views
Last Modified: 2010-03-31
Here are my client side and server side codes.Can any one integrate a code into it.where after connecting  client to server. The status on the server side interface (in text box) is shown as connected else disconnected. and here program shows on clients side the temperature,cloud condition, etc..can any one add images on side of those labels ..eg for skies ..small icon of clouds..temperature..image of sun ...etc..
-------------
server code
.........................
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Server extends JFrame
{


      private JTextField textConnection;
      private JLabel labelConnection;


     public Server()

     {

             Container container = getContentPane() ;
             container.setLayout(new FlowLayout());

             labelConnection = new JLabel("Connection ") ;
             container.add(labelConnection );
             textConnection = new JTextField(15) ;
             container.add(textConnection);

            setSize ( 200,400) ;
            setVisible(true);

          try
          {
               //creating server socket binding at port # 3000
               ServerSocket server=new ServerSocket(3000);
               System.out.println("Server binded at "+((server.getInetAddress()).getLocalHost()).getHostAddress()+":3000");
               System.out.println("Run the Client");
               //ready to accept client request
               Socket socket=server.accept();
               //opening the input stream to read data from client connection
               BufferedReader in= new BufferedReader(new InputStreamReader(socket.getInputStream()));
               System.out.println(in.readLine());
               //using output stream responsing data
               DataOutputStream out=new DataOutputStream(socket.getOutputStream());
               while (true)
               {
                  for (int i=0; i<8; i++)
                  {
                      int s =(int)(Math.random()*10);
                      out.writeInt((s*10)+20);
                  }
                  out.flush();
               }
               //closing the in & out streams
                     //out.close
            //   in.close();
          }
          catch(Exception err)
          {
               System.err.println("* err"+err);
          }

     }

     public static void main(String a[])
     {
          new Server();
     }

}

client side code
.................................
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Client extends JFrame

{
     private JTextField textsky,texttemp,texthumidity,textwindspeed,textbarometer,textdew,textheat,textvisibility;
     private JLabel labelsky,labeltemp,labelhumidity,labelwindspeed,labelbarometer,labeldew,labelheat,labelvisibility;

     public Client()
     {
                        Container container = getContentPane() ;
                        container.setLayout(new FlowLayout());


                         labelsky = new JLabel("Sky ") ;
                         container.add(labelsky );
                         textsky = new JTextField(15) ;
                        container.add(textsky);


                        labeltemp = new JLabel("Temp ") ;
                        container.add(labeltemp );
                        texttemp = new JTextField(15) ;
                        container.add(texttemp );



                        labelhumidity = new JLabel("Humidity ") ;
                        container.add(labelhumidity );
                        texthumidity = new JTextField(15) ;
                        container.add(texthumidity );

                        labelwindspeed = new JLabel("Wind speed ") ;
                        container.add(labelwindspeed );
                        textwindspeed = new JTextField(15) ;
                        container.add(textwindspeed );

                        labelbarometer = new JLabel("Barometer ") ;
                        container.add(labelbarometer );
                        textbarometer = new JTextField(15) ;
                        container.add(textbarometer );

                        labeldew = new JLabel("Dew ") ;
                        container.add(labeldew );
                        textdew = new JTextField(15) ;
                        container.add(textdew );

                        labelheat = new JLabel("Heat ") ;
                        container.add(labelheat );
                        textheat = new JTextField(15) ;
                        container.add(textheat );

                        labelvisibility = new JLabel("Visibillity ") ;
                        container.add(labelvisibility );
                        textvisibility = new JTextField(15) ;
                        container.add(textvisibility );

                        setSize ( 200,600) ;
                        setVisible(true);

          try
          {
               //ceating the socket to connect to server running on same machine binded on port no 3000
               Socket client=new Socket("localhost",3000);
               System.out.println("Client connected ");

               //getting the o/p stream of that connection
               PrintStream out=new PrintStream(client.getOutputStream());
               //sending the message to server
               out.print("Hello from client\n");
               out.flush();
               //reading the response using input stream
               DataInputStream in= new DataInputStream(client.getInputStream());
               while (true)
               {
                           if(in.readInt()>20 && in.readInt()<40)
                  textsky.setText("Sky Condition: "+"Clear");
                              else
                          textsky.setText("Sky Condition: "+"Cloudy");
                  texttemp.setText("Temperature: "+in.readInt());
                  texthumidity.setText("Humidity: "+in.readInt());
                  textwindspeed.setText("Wind Speed: "+in.readInt());
                  textbarometer.setText("Barometer: "+in.readInt());
                  textdew.setText("Dewpoint: "+in.readInt());
                  textheat.setText("Heat Index: "+in.readInt());
                  textvisibility.setText("Visibility: "+in.readInt());
                  Thread.sleep(5000);
               }

               //closing the streams
               //in.close();
               //out.close();

          }
          catch(Exception err)
          {
               System.err.println("* err"+err);
          }

     }

     public static void main(String a[])
     {
          new Client();
     }

}
0
Comment
Question by:prashanth_gurijala
  • 2
2 Comments
 
LVL 2

Accepted Solution

by:
ThummalaRaghuveer earned 500 total points
ID: 12232474
Following code at server will do for showing status.......


import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Server extends JFrame
{


     private JTextField textConnection;
     private JLabel labelConnection;
     Container container = null;


     public Server()

     {

           container = getContentPane() ;
           container.setLayout(new FlowLayout());

           labelConnection = new JLabel("Connection ") ;
           container.add(labelConnection );
           textConnection = new JTextField(15) ;
           container.add(textConnection);
           textConnection.setText("Disconnected");

          setSize ( 200,400) ;
          setVisible(true);

          try
          {
               //creating server socket binding at port # 3000
               ServerSocket server=new ServerSocket(3000);
               System.out.println("Server binded at "+((server.getInetAddress()).getLocalHost()).getHostAddress()+":3000");
               System.out.println("Run the Client");
               //ready to accept client request
               Socket socket=server.accept();
               textConnection.cut();
               textConnection.setText("Connected\n");
               
               
               //opening the input stream to read data from client connection
               BufferedReader in= new BufferedReader(new InputStreamReader(socket.getInputStream()));
               System.out.println(in.readLine());
               //using output stream responsing data
               DataOutputStream out=new DataOutputStream(socket.getOutputStream());
               while (true)
               {
                  for (int i=0; i<8; i++)
                  {
                      int s =(int)(Math.random()*10);
                      out.writeInt((s*10)+20);
                  }
                  out.flush();
               }
               //closing the in & out streams
                  //out.close
            //   in.close();
          }
          catch(Exception err)
          {
               System.err.println("* err"+err);
               textConnection.cut();
               textConnection.setText("Disconnected\n");
          }

     }

     public static void main(String a[])
     {
          new Server();
     }

}
0
 
LVL 2

Expert Comment

by:ThummalaRaghuveer
ID: 12232662
U do not need textConnection.cut() method and also the \n after every message
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question