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

程序编译,并且服务器上没有问题,但是运行客户端总是会拒绝连接或连接时间超出例外。我尝试了不同的端口名称,也没有防火墙问题。请建议我该怎么办....

问题是函数读取线。规范说该方法读取流,直到收到新行(" n"(

http://docs.oracle.com/javase/7/docs/api/java/io/bufferedreader.html#readline((

将输入字符串更改为

String str="Rujhaann";

将有效或替代客户关闭客户端上的输出流以终止数据传输。

out.close();

最新更新