自己写的java 聊天小程序效果出不来,谁能帮忙看看

运行之后应该是客户端能随时给服务端发信息,服务端能接收到,服务端也是如此。现在两个收不到消息,代码贴不了太多先贴服务端的,大家帮忙看看有啥问题服务端代码:publiccl... 运行之后应该是客户端能随时给服务端发信息,服务端能接收到,服务端也是如此。现在两个收不到消息
,代码贴不了太多先贴服务端的,大家帮忙看看有啥问题
服务端代码:
public class server {
public static void main(String[] args) throws IOException {
ServerSocket s=new ServerSocket(2172);
Socket ss=s.accept();
new Thread(new serverread(ss)).start();;
new Thread(new serverwrite(ss)).start();;
}
}
class serverread implements Runnable{
Socket s;
public serverread(Socket s) {
super();
this.s = s;
}
public void run(){
try {
InputStream is=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String str=br.readLine();
while(true){
System.out.println("接收:"+str);
br.read();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

class serverwrite implements Runnable{
Socket s;
public serverwrite(Socket s) {
super();
this.s = s;
}
public void run(){
try {
Scanner sc=new Scanner(System.in);
OutputStream os=s.getOutputStream();
PrintWriter pw=new PrintWriter(new OutputStreamWriter(os));
String str;
while(true){
str=sc.nextLine();
System.out.println("发送:"+str);
pw.write(str);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
是不是读写不该分两个线程?
展开
 我来答
zyhao0210
2014-08-03 · TA获得超过283个赞
知道答主
回答量:575
采纳率:100%
帮助的人:201万
展开全部
服务端在等待客户端连接时候是一直在循环等待连接的啊。
追问
这个没关系吧,就一个客户端
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fly撒旦法时代
2014-08-03
知道答主
回答量:15
采纳率:0%
帮助的人:12.6万
展开全部
是一次通信都不成功的吗,如果是 你确定客户端与服务端成功连接了吗
追问
连接成功的,没有异常
追答
读写分开是必须的

我试过将PrintWriter换成BufferedWriter,可以正常使用,应该是PrintWriter没有将数据写入流内

哦,是没加入换行符,改成pw.write(str+"\n");还有br.read()改成str=br.readLine();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式