我在笔记本电脑上使用教科书客户端和服务器类,但是当我运行这两个程序时,它们似乎没有连接。我只需打开两个命令提示符窗口编译并在一个上运行服务器,然后在另一个窗口上编译客户端。我做错了什么?
这是服务器代码
import java.util.Date;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class DateServer {
public static void main(String[] args) {
Date now = new Date();
try {
System.out.println("Waiting for a connection on port 7655.");
ServerSocket serverSock = new ServerSocket(7655);
Socket connectionSock = serverSock.accept();
BufferedReader clientInput = new BufferedReader(
new InputStreamReader(connectionSock.getInputStream()));
DataOutputStream clientOutput = new DataOutputStream(
connectionSock.getOutputStream());
System.out.println("Connection made, waiting for client " +
"to send their name.");
String clientText = clientInput.readLine();
String replyText = "Welcome, " + clientText +
", Today is " + now.toString() + "\n";
clientOutput.writeBytes(replyText);
System.out.println("Sent: " + replyText);
clientOutput.close();
clientInput.close();
connectionSock.close();
serverSock.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
这是客户端代码:
import java.net.Socket;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class DateClient {
public static void main(String[] args) {
try {
String hostname = "localhost";
int port = 7655;
System.out.println("Connecting to server on port " + port);
Socket connectionSock = new Socket(hostname, port);
BufferedReader serverInput = new BufferedReader(
new InputStreamReader(connectionSock.getInputStream()));
DataOutputStream serverOutput = new DataOutputStream(
connectionSock.getOutputStream());
System.out.println("Connection made, sending name.");
serverOutput.writeBytes("Dusty Rhodes\n");
System.out.println("Waiting for reply.");
String serverData = serverInput.readLine();
System.out.println("Received: " + serverData);
serverOutput.close();
serverInput.close();
connectionSock.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
感谢
答案 0 :(得分:0)
尝试更改端口号并查看。可能是其他应用正在此端口上运行。您的代码没有问题。我可以运行它。