Java套接字只发送一条消息
我用Java制作了一个套接字。Java套接字只发送一条消息,java,sockets,server,message,Java,Sockets,Server,Message,我用Java制作了一个套接字。 此套接字与服务器连接 当我启动程序时,服务器会发送一条消息,说明我的套接字已连接到AEOS。 当我尝试登录服务器发送一些命令时,服务器再次响应:status connected to AEOS version 这不是我期望的消息,通常我的服务器必须发送“响应true” 你能帮我吗 谢谢 import java.io.*; import java.net.*; class TCPClient { public static void main(String
此套接字与服务器连接 当我启动程序时,服务器会发送一条消息,说明我的套接字已连接到AEOS。 当我尝试登录服务器发送一些命令时,服务器再次响应:
status connected to AEOS version
这不是我期望的消息,通常我的服务器必须发送“响应true”
你能帮我吗
谢谢
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv[]) throws Exception {
while(true) {
String sentence;
String modifiedSentence;
Socket clientSocket = new Socket("127.0.0.1", 1201);
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
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();
}
}
}
为什么不尝试读取服务器发送的所有内容?还有,每次需要打开一个新插座吗?取决于您的实现。试试这个:
public static void main(String[] args) {
Socket clientSocket = null;
try {
clientSocket = new Socket("127.0.0.1", 1201);
BufferedReader inFromUser = new BufferedReader(
new InputStreamReader(System.in));
DataOutputStream outToServer = new DataOutputStream(
clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
String initialMessageFromServer = null;
while ((initialMessageFromServer = inFromServer
.readLine()) != null) {
System.out.println(initialMessageFromServer);
}
while (true) {
String sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
StringBuilder modifiedSentence = new StringBuilder();
String responseFromServer = null;
while ((responseFromServer = inFromServer.readLine()) != null) {
modifiedSentence.append(responseFromServer);
modifiedSentence.append('\n');
}
System.out
.println("FROM SERVER: " + modifiedSentence.toString());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (clientSocket != null) {
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
请不要发布控制台输出的屏幕截图。您应该复制文本并将其粘贴到代码块中,方法是重新设置您的问题。感谢您的快速回复。我试过这个代码,但现在他与服务器连接了,但当我发送命令时,没有发生。。通常在与服务器连接后,我必须输入我的登录名和密码。当我输入该值时,我的服务器响应将显示文本。那不会发生。。