Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在JAVA中使用TCP启用双工模式通信_Java_Sockets_Tcp - Fatal编程技术网

无法在JAVA中使用TCP启用双工模式通信

无法在JAVA中使用TCP启用双工模式通信,java,sockets,tcp,Java,Sockets,Tcp,我是JAVA和Socket编程新手,我想做双工模式传输,但我无法将用户输入的消息从服务器发送到客户端,而从客户端发送到服务器的消息是可以的。 下面是我分别针对服务器端和客户端的代码 public class connectionServer { 对于服务器: import java.io.*; import java.net.*; public static void main(String[] args) { // TODO code application logic here

我是JAVA和Socket编程新手,我想做双工模式传输,但我无法将用户输入的消息从服务器发送到客户端,而从客户端发送到服务器的消息是可以的。 下面是我分别针对服务器端和客户端的代码

public class connectionServer {
对于服务器:

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);
    }
}
}
对于客户:

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);
            }
        }    
    }

这方面的任何帮助在您的代码中,客户端和服务器都在
inputstream.readLine()上阻塞


如果我将一些文本从客户端发送到服务器,并对其进行修改并发送回客户端,请查看此功能是否正常。但是,我在服务器中获取用户输入并发送回客户端时遇到了问题。但是,您没有向服务器发送任何内容,因此服务器无法获取输入
Client: You say something
Server: No you say something