[size=medium]服务器端读入流部分代码:
客户端写入流部分代码
程序运行时出现阻塞
[color=blue]原因分析:[/color]
服务器端使用了readLine();也就是在读一行文本,读文件的时候不会出现问题,[color=red]但是在使用Socket时,客户端写入了数据
但并没有提供换行符,所以服务器端在readLine()时一直处于阻塞状态,[/color]
解决方法:
一:
可以在客户端写完数据后加上换行符,newLine()方法即可,代码如下:
这样在服务器端就不会出现阻塞。
二:
使用DataOutputStream和DataInputStream
服务器端:
客户端
System.out.println(new BufferedReader(new InputStreamReader(socket.getInputStream())).readLine());
客户端写入流部分代码
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write(content);
writer.flush();
程序运行时出现阻塞
[color=blue]原因分析:[/color]
服务器端使用了readLine();也就是在读一行文本,读文件的时候不会出现问题,[color=red]但是在使用Socket时,客户端写入了数据
但并没有提供换行符,所以服务器端在readLine()时一直处于阻塞状态,[/color]
解决方法:
一:
可以在客户端写完数据后加上换行符,newLine()方法即可,代码如下:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write(content);
writer.newLine();
writer.flush();
这样在服务器端就不会出现阻塞。
二:
使用DataOutputStream和DataInputStream
服务器端:
input.readUTF();
客户端
output.writeUTF();
[/size]