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();
你的代码主要对我有用,我的意思是有一个问题,客户机不写换行符,但它连接,不超时。