Java网络“;拒绝连接:连接”;

Java网络“;拒绝连接:连接”;,java,Java,我正在尝试用套接字做一个基本的网络程序 服务器: import java.io.*; import java.net.*; class Socketserver{ public static void main(String[]z)throws IOException{ System.out.println("Server is started"); ServerSocket ss=new ServerSocket(9999); S

我正在尝试用套接字做一个基本的网络程序 服务器:

    import java.io.*;
import java.net.*;
class Socketserver{
    public static void main(String[]z)throws IOException{
        System.out.println("Server is started");
        ServerSocket ss=new ServerSocket(9999);
        System.out.println("Waiting for client request");
        Socket s=ss.accept();
        System.out.println("client connected");
        InputStreamReader a=new InputStreamReader(s.getInputStream());
        BufferedReader b=new BufferedReader(a);
        String str=b.readLine();
        System.out.println("Client data"+str);
        String nickname=str.substring(0,3);
        OutputStreamWriter os=new OutputStreamWriter(s.getOutputStream());
        PrintWriter out=new PrintWriter(os);
        out.write(str);
        os.flush();
        System.out.println("data sent from server to client");
}}
客户端

import java.io.*;
import java.net.*;
class Socketclient{
    public static void main(String[]z)throws IOException{
        String ip="localhost";// for same machine
        int port=9999;
        Socket s=new Socket(ip,port);
        String str="Rujhaan";
        OutputStreamWriter os=new OutputStreamWriter(s.getOutputStream());
        PrintWriter out=new PrintWriter(os);
        out.write(str);
        os.flush();
        InputStreamReader a=new InputStreamReader(s.getInputStream());
        BufferedReader b=new BufferedReader(a);
        String nickname=b.readLine();
        System.out.println("data from server"+nickname);
    }
}
程序可以编译,并且在服务器上没有问题,但运行客户端时总是出现连接被拒绝或连接超时异常。 我尝试了不同的端口名,也没有防火墙问题。
请告诉我该怎么做……

问题是函数readLine。该规范表示,该方法将读取流,直到收到新行(“\n”)

将输入字符串更改为

String str="Rujhaan\n";
将工作或替代关闭客户端上的OutputStream以终止数据传输

out.close();

你的代码主要对我有用,我的意思是有一个问题,客户机不写换行符,但它连接,不超时。