Frage

I am new to JAVA as well as Socket Programming I want to do duplex mode transmission but I am unable to send message input by user from server to client whereas message from client to server is ok. Following is my code for both server side and client side respectively.

public class connectionServer {

For Server:

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

public static void main(String[] args) {
    // TODO code application logic here
    String clientSentence;
    String capitalizedSentence;
    BufferedReader inFromClient;
    DataOutputStream outToClient;
    BufferedReader inFromUser;

    try
    {
        ServerSocket welcomeSocket = new ServerSocket(6789);
        while(true)
        {
            Socket connectionSocket = welcomeSocket.accept();
            inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
            outToClient = new DataOutputStream(connectionSocket.getOutputStream());                
            clientSentence = inFromClient.readLine();
            System.out.println(clientSentence);
            inFromUser = new BufferedReader(new InputStreamReader(System.in));
            capitalizedSentence = clientSentence.toUpperCase() + '\n';
            String tempString = inFromUser.readLine();
            outToClient.writeBytes(tempString);
        }
    }
    catch(IOException e)
    {
        System.out.println(e);
    }
}
}

For Client:

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

public class connectionClient {

    public static void main(String[] args) {
    // TODO code application logic here
        String sentence;
        String modifiedSentence;
        try
        {
            while(true)
            {
                 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
                 Socket clientSocket = new Socket("localhost", 6789);
                 DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
                 BufferedReader inFromServer = new BufferedReader(new
                 InputStreamReader(clientSocket.getInputStream()));
                 sentence = inFromUser.readLine();
                 outToServer.writeBytes(sentence + '\n');
                 modifiedSentence = inFromServer.readLine();
                 System.out.println("FROM SERVER: " + modifiedSentence);
            }
//        clientSocket.close();
            }
            catch(IOException e)
            {
                System.out.println(e);
            }
        }    
    }

Any help in this regards

War es hilfreich?

Lösung

In your code both client and server are both blocking on inputstream.readLine ();

Client: You say something
Server: No you say something
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top