在同一台机器上运行客户端和服务器类但没有连接?

时间:2014-03-15 07:09:33

标签: java sockets

我在笔记本电脑上使用教科书客户端和服务器类,但是当我运行这两个程序时,它们似乎没有连接。我只需打开两个命令提示符窗口编译并在一个上运行服务器,然后在另一个窗口上编译客户端。我做错了什么?

这是服务器代码

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());
        }
    }
}

感谢

1 个答案:

答案 0 :(得分:0)

尝试更改端口号并查看。可能是其他应用正在此端口上运行。您的代码没有问题。我可以运行它。