简体   繁体   中英

Unable to get message from client in client-server program in java

I am writing a client-server program in java using TCP/IP. For the purpose, I wrote the following codes:

serversock.java:

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

public class serversock  {
     public static void main(String[] args) throws IOException
    {
        ServerSocket sersock = null;

        try 
        {
            sersock = new ServerSocket(10007);
        }

        catch (IOException e)
        {
            System.out.println("Can't listen to port 10007");
            System.exit(1);
        }

        Socket clientSocket = null;
        System.out.println("Waiting for connection....");


        try
        {
            clientSocket = sersock.accept();
        }

        catch ( IOException ie)
        {
            System.out.println("Accept failed..");
            System.exit(1);
        }

        System.out.println("Conncetion is established successfully..");
        System.out.println("Waiting for input from client...");

        PrintWriter output = new PrintWriter(clientSocket.getOutputStream());

        BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        String inputLine = input.readLine();

        while ( inputLine  != null)
        {
            output.println(inputLine);
            System.out.println("Server: " + inputLine);
            inputLine = input.readLine();
        }
        input.close();
        clientSocket.close();
        sersock.close();

    }
}

clientsock.java:

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

public class clientsock 
{
    public static void main(String[] args) throws IOException
    {
        Socket sock = new Socket("localhost",10007);

        // Scanner scan = new Scanner(System.in);
        PrintWriter output = new PrintWriter(sock.getOutputStream(),true);
        BufferedReader input = new BufferedReader( new InputStreamReader(sock.getInputStream()));
        String line = null;

        BufferedReader stdInput = new BufferedReader( new InputStreamReader(System.in));

        System.out.println("Enter data to send to server: ");
        line = stdInput.readLine();
        while ( (line) != "bye")
        {
            output.println(line.getBytes());
            line = stdInput.readLine();
            System.out.println("Server sends: " + input.read());
        }
        sock.close();

    }
}

Now on running the programs I got the following output: server:

shahjahan@shahjahan-AOD270:~/Documents/java$ java serversock 
Waiting for connection....
Conncetion is established successfully..
Waiting for input from client...
Server: [B@4e25154f
shahjahan@shahjahan-AOD270:~/Documents/java$ 

client:

shahjahan@shahjahan-AOD270:~/Documents/java$ java clientsock
Enter data to send to server: 
qwe
sdf
^Cshahjahan@shahjahan-AOD270:~/Documents/java$

The server is recieving different symbols, and client receives nothing. Please help me to solve it.

In the client replace:

output.println(line.getBytes());

with

output.println(line);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM