doubt about socket programing

Discussion in 'Java' started by chandu, Feb 28, 2006.

  1. chandu

    chandu Guest

    my client side programme

    import java.net.*;
    import java.io.*;

    class vissock1
    {
    public static void main(String args[]) throws IOException
    {
    Socket s=new Socket("172.18.19.203",80);
    InputStream in=s.getInputStream();
    OutputStream out=s.getOutputStream();
    DataInputStream d=new DataInputStream(System.in);
    int j;
    for(int i=0;i<3;i++)
    {
    try
    {
    int k=Integer.parseInt(d.readLine());
    out.write(k);
    }
    catch(Exception e)
    {
    System.out.println("enter valid no");
    }
    while((j=in.read())!=-1)
    {
    System.out.print((char) j);
    }

    }

    }
    }

    my server side programme

    import java.net.*;
    import java.io.*;

    class ser
    {
    public static void main(String args[]) throws IOException
    {
    ServerSocket s1=new ServerSocket(80);
    Socket s=s1.accept();
    InputStream in1=s.getInputStream();
    OutputStream out1=s.getOutputStream();
    while(1==1)
    {
    int j=in1.read();
    if(j%2==0)
    {
    out1.write("even\n".getBytes());
    }
    else
    {
    out1.write("odd\n".getBytes());
    }
    }
    }
    }


    i am able to get only one input from keyboard and accordingly the
    response from server for that input.and then program is hanging
    up...when i remove the code for reading server response from the for
    loop(in client code) and keep out side the for loop i am getting
    output.what is the reason.please help me.
    chandu, Feb 28, 2006
    #1
    1. Advertising

  2. "chandu" <> wrote in message
    news:...
    > my client side programme
    >
    > import java.net.*;
    > import java.io.*;
    >
    > class vissock1
    > {
    > public static void main(String args[]) throws IOException
    > {
    > Socket s=new Socket("172.18.19.203",80);
    > InputStream in=s.getInputStream();
    > OutputStream out=s.getOutputStream();
    > DataInputStream d=new DataInputStream(System.in);
    > int j;
    > for(int i=0;i<3;i++)
    > {
    > try
    > {
    > int k=Integer.parseInt(d.readLine());
    > out.write(k);
    > }
    > catch(Exception e)
    > {
    > System.out.println("enter valid no");
    > }
    > while((j=in.read())!=-1)
    > {
    > System.out.print((char) j);
    > }


    <snip>

    > i am able to get only one input from keyboard and accordingly the
    > response from server for that input.and then program is hanging
    > up...when i remove the code for reading server response from the for
    > loop(in client code) and keep out side the for loop i am getting
    > output.what is the reason.please help me.


    Your client loop to read the reply from the server is waiting for EOF. I
    think you want to stop reading after \n instead. Hint: socket streams are
    not packet-oriented at all. Also, DataInputStream.readLine() is
    deprecated--look at switching to BufferedReader. Note also that if the user
    enters an invalid number you program will still attempt to read a response
    that will never come. Read reply should only be coupled with a successful
    write--and you can use BufferedReader on the reply here also.

    Cheers,
    Matt Humphrey http://www.iviz.com/
    Matt Humphrey, Feb 28, 2006
    #2
    1. Advertising

  3. chandu

    chandu Guest

    thank you for your reply..can you suggest me any link for better
    understainding of streams in java..
    chandu, Mar 2, 2006
    #3
  4. "chandu" <> wrote in message
    news:...
    > thank you for your reply..can you suggest me any link for better
    > understainding of streams in java..
    >


    Try Roedy's pages on I/O. http://mindprod.com/jgloss/io.html They're not
    stream-specific but it's a good starting place. And don't forget the Java
    API. It may also seem that you should read some about TCP/IP because some
    issues affect how you read data. http://mindprod.com/jgloss/tcpip.html

    Cheers,
    Matt Humphrey http://www.iviz.com/
    Matt Humphrey, Mar 2, 2006
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    2
    Views:
    1,041
  2. pmm

    Port Delegation in Socket Programing

    pmm, Oct 5, 2006, in forum: C Programming
    Replies:
    1
    Views:
    281
    Walter Roberson
    Oct 5, 2006
  3. Sean
    Replies:
    6
    Views:
    381
    bjeremy
    Jan 16, 2007
  4. Clement

    help in socket programing

    Clement, Nov 2, 2007, in forum: C Programming
    Replies:
    1
    Views:
    341
    Default User
    Nov 2, 2007
  5. Laszlo Nagy
    Replies:
    1
    Views:
    4,811
    Mark Wooding
    Jan 27, 2009
Loading...

Share This Page