我正在尝试使用套接字执行基本的网络程序 服务器
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);
}
}
客户端
{{1}}
程序编译并且服务器上没有问题但运行客户端总是提供连接拒绝或连接超时异常。 我尝试过不同的端口名称,也没有防火墙问题。 请建议我做什么....
答案 0 :(得分:0)
问题是函数readLine。规范说该方法读取流直到收到新行(" \ n")
http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine()
将输入字符串更改为
String str="Rujhaan\n";
将工作或替代关闭客户端上的OutputStream以终止数据传输。
out.close();