java中的服务器/客户端聊天套接字
我有一个服务器/客户端套接字连接,每一方都可以向另一方发送消息。必须开始聊天的客户端。我想在双方(服务器和客户端)中的一方发送“退出”消息时关闭连接。 这是我的密码:java中的服务器/客户端聊天套接字,java,sockets,client-server,chat,Java,Sockets,Client Server,Chat,我有一个服务器/客户端套接字连接,每一方都可以向另一方发送消息。必须开始聊天的客户端。我想在双方(服务器和客户端)中的一方发送“退出”消息时关闭连接。 这是我的密码: import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; Strin
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
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);
if(modifiedSentence.equals("quit\n")) clientSocket.close();
}
}
}
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;
String sentence;
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new
InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("FROM CLIENT: " + clientSentence);
//capitalizedSentence = clientSentence.toUpperCase() + '\n';
sentence = inFromUser.readLine();
outToClient.writeBytes(sentence);
}
}
}
有什么帮助吗?:) 您已经写了一行了。为“quit”编写另一个,并在读取和关闭()时检查此字符串
如果您不明白程序在做什么,请使用调试器,这就是调试器的用途。您已经编写了一行。为“quit”编写另一个,并在读取和关闭()时检查此字符串
如果您不明白程序在做什么,请使用调试器,这就是调试器的作用。不要混淆文本和二进制。如果要使用文本,请不要使用DataOutputStream或DataInputStream,readline将删除\n因此在字符串中没有对其进行点检查,它不可能存在。您还必须检查readline()的结果是否为null,如果是,请关闭套接字。我看这里没有真正的问题。不要混淆文本和二进制。如果要使用文本,请不要使用DataOutputStream或DataInputStream,readline将删除\n因此在字符串中没有对其进行点检查,它不可能存在。您还必须检查readline()的结果是否为null,如果是,请关闭套接字。我看不出有什么真正的问题,或者一开始就不要这样写。我本来打算笑一笑的,但实际上这不是开玩笑的。我同意。当你想关闭连接时,你可以直接关闭()或者一开始就不要这样写。我本来打算笑一笑的,但实际上这不是开玩笑的。我同意。如果要关闭连接,可以只关闭()。