Solved

Problem sending a value from a server to a client program (very basic)

Posted on 2004-04-13
4
195 Views
Last Modified: 2011-09-20
I'm trying to send a String from a server program to a client program using writeUTF().

Follow the code below.
It connects to the server but wont read the message for some reason!  It gets to the "here 1" stage and goes no further.

Anyone got any ideas?
Thanks.

Heres my code:

*************************SERVER******************************
import java.net.*;
import java.io.*;
import java.util.*;

public class TestServer
{
      public static void main (String args[]) throws IOException
      {            
            ServerSocket server = new ServerSocket (9835);
            DataOutputStream out;
            Socket client = null;
            
            while (true)
            {
                  client = server.accept ();

                  //send to Client
                  out = new DataOutputStream (new BufferedOutputStream (client.getOutputStream ()));
                  out.writeUTF ("hi");
            }
      }
}

*******************************************************************

*************************CLIENT*************************************
import java.net.*;
import java.io.*;
import java.util.*;

class Test
{
      public static void main(String[] args)
      {
            DataInputStream i;

            try
            {
                  Socket s = new Socket("localhost", 9835);      
                  i = new DataInputStream (new BufferedInputStream (s.getInputStream()));  //create DataInputStream
                  System.out.println("here 1");

                  String number = i.readUTF ();
                  System.out.println("here 2");
                  System.out.println(number);
            } catch (Exception e) {
                  System.out.println(e); }
      }
}
*******************************************************************
0
Comment
Question by:credit
  • 2
4 Comments
 
LVL 7

Accepted Solution

by:
searlas earned 125 total points
ID: 10815668
You have a BufferedOutputStream on your server.  It may not have written the string before you are trying to read it, and so hangs.
Try this:
while (true)
          {
               client = server.accept ();

               //send to Client
               out = new DataOutputStream (new BufferedOutputStream (client.getOutputStream ()));
               out.writeUTF ("hi");
               out.flush();
               out.close();
          }
0
 
LVL 14

Expert Comment

by:Tommy Braas
ID: 10815693
You always have to close() input and output streams when you're done with them, especially when it comes to network programming!
0
 
LVL 7

Expert Comment

by:searlas
ID: 10821552
Yes.  And you should always flush output streams when you have finished sending a chunk of data (i.e. if you send some data, do intensive calculation, send more data... etc.)
0
 

Author Comment

by:credit
ID: 10822135
Got it working.
Thanks alot!
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

707 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now