无法在JAVA中使用TCP启用双工模式通信
我是JAVA和Socket编程新手,我想做双工模式传输,但我无法将用户输入的消息从服务器发送到客户端,而从客户端发送到服务器的消息是可以的。 下面是我分别针对服务器端和客户端的代码无法在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
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