如何通过 Java 套接字正确设置服务器部分?
How correctly to set up server part through Java socket?
我已经写好了服务端和客户端部分,见代码:
//this I run on my firt PC
public class TCPServer {
public static void main(String[] args) throws Exception{
TCPServer server = new TCPServer();
server.run();
}
public void run() throws Exception{
ServerSocket socket = new ServerSocket(6789);
Socket SOCK = socket.accept();
BufferedReader BR = new BufferedReader(new InputStreamReader(SOCK.getInputStream()));
String msg = BR.readLine();
System.out.println(msg);
if(msg != null){
PrintStream PS = new PrintStream(SOCK.getOutputStream());
PS.print("MESSAGE RECEIVED");
}
}
}
//This I run on my notebook
public class TCPClient {
public static void main(String args[]) throws Exception{
TCPClient client = new TCPClient();
client.run();
}
public void run() throws Exception{
Socket clientSocket = new Socket("192.168.88.77",6789);
PrintStream PS = new PrintStream(clientSocket.getOutputStream());
PS.print("Hello from GLADIS VLADLEN");
BufferedReader BR = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String msg = BR.readLine();
System.out.println(msg);
}
}
在 运行 这个应用程序之后没有任何反应。只有在我停止客户端应用程序消息后,服务器部分才会收到消息。为什么会这样?我尝试关闭防火墙,但这对我没有帮助。
服务器和客户端都在使用 BufferedReader#readLine()
读取一行。但是 PrintStream
发送的字符没有行终止符。
尝试调用 println
而不是 print
。
我已经写好了服务端和客户端部分,见代码:
//this I run on my firt PC
public class TCPServer {
public static void main(String[] args) throws Exception{
TCPServer server = new TCPServer();
server.run();
}
public void run() throws Exception{
ServerSocket socket = new ServerSocket(6789);
Socket SOCK = socket.accept();
BufferedReader BR = new BufferedReader(new InputStreamReader(SOCK.getInputStream()));
String msg = BR.readLine();
System.out.println(msg);
if(msg != null){
PrintStream PS = new PrintStream(SOCK.getOutputStream());
PS.print("MESSAGE RECEIVED");
}
}
}
//This I run on my notebook
public class TCPClient {
public static void main(String args[]) throws Exception{
TCPClient client = new TCPClient();
client.run();
}
public void run() throws Exception{
Socket clientSocket = new Socket("192.168.88.77",6789);
PrintStream PS = new PrintStream(clientSocket.getOutputStream());
PS.print("Hello from GLADIS VLADLEN");
BufferedReader BR = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String msg = BR.readLine();
System.out.println(msg);
}
}
在 运行 这个应用程序之后没有任何反应。只有在我停止客户端应用程序消息后,服务器部分才会收到消息。为什么会这样?我尝试关闭防火墙,但这对我没有帮助。
服务器和客户端都在使用 BufferedReader#readLine()
读取一行。但是 PrintStream
发送的字符没有行终止符。
尝试调用 println
而不是 print
。