求指导!!一个简单的java Socket程序

baoyongzhang94 2011-11-06 05:25:12
求指导!!为什么发送必须要加换行啊,不加就发送不过去,请看源码注释那一块,不用BufferWriter用PirntWriter也是一样,为什么print就不行,println就行啊!!!
客户端
package com.socket;
import java.net.*;
import java.io.*;

public class TalkClientTest {
public static void main(String[] args){
Socket s=null;
BufferedReader br=null;
BufferedWriter bw=null;
BufferedReader bin=null;
String line;
try{
s=new Socket("127.0.0.1",6666);
}
catch(UnknownHostException e){
System.out.println("IP Error!");
}
catch(IOException e){
System.out.println("IO Error!");
}
try{
bin=new BufferedReader(new InputStreamReader(System.in));
bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
while(true){
line=bin.readLine();
if(line.equals("exit")){
break;
}
bw.write(line);
bw.newLine();//为什么不打换行就不行啊,发送不过去
bw.flush();
System.out.println("Client:"+line);
System.out.println("Server:"+br.readLine());
}
br.close();
bw.close();
bin.close();
s.close();
}
catch(IOException e){
System.out.println("IO Error!");
e.printStackTrace();
}
}
}

服务器

package com.socket;
import java.net.*;
import java.io.*;

public class TalkServerTest {
public static void main(String[] args){
ServerSocket ss=null;
Socket s=null;
BufferedReader br=null;
BufferedWriter bw=null;
BufferedReader bin=null;
String line=null;
try{
ss=new ServerSocket(6666);
s=ss.accept();
}
catch(IOException e){
System.out.println("IO Error!");
}
try{
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bin=new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.println("Client:"+br.readLine());
line=bin.readLine();
if(line.equals("exit")){
break;
}
bw.write(line);
bw.newLine();//为什么不打换行就不行啊,发送不过去
bw.flush();
}
bin.close();
bw.close();
br.close();
s.close();
ss.close();
}
catch(IOException e){
System.out.println("IO Error!");
}
}
}

...全文
48 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
什么都不能 2011-11-06
  • 打赏
  • 举报
回复
发送玩一次后面要加\n\0吧
Cactus_hxk 2011-11-06
  • 打赏
  • 举报
回复
不是发送不出去,line=bin.readLine();找到换行他才认为是一行,如果他没有找到他会一直的读下去,直到找到换行才会停止

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧