菜鸟写的一段有问题的Java的代码!请高手指点!

原创 2017年01月03日 02:21:23
为什么得写的一个基于TCp的小聊天程序可以实现服务器和客户之间一句一句的对话啊!问题出在哪儿啊??

下面是我的服务器端代码:
import java.net.*;
import java.io.*;
public class ServerDemo {

/**
 * @param 这是一个基于Socket的单客户端程序
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
ServerSocket ss=new ServerSocket(4000);
Socket server=ss.accept();
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
BufferedReader is=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter os=new PrintWriter(new OutputStreamWriter(server.getOutputStream()));
System.out.println("[客户说]:"+is.readLine());
String message=sin.readLine();
while(!message.equals("bye")){
os.println(message);
os.flush();
System.out.println("[我说]:"+message);
System.out.println("[客户说]:"+is.readLine());
message=sin.readLine();
}
System.out.println("本次对话结束!");
os.close();
is.close();
sin.close();
server.close();
}catch(Exception e){
e.printStackTrace();
}
}



}

下面是我的客户端代码:
import java.net.*;
import java.io.*;
public class ClientDemo {

/**
 * @param 这是一个基于Socket的单客户端程序
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Socket sk=new Socket("127.0.0.1",4000);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
BufferedReader is=new BufferedReader(new InputStreamReader(sk.getInputStream()));
PrintWriter os=new PrintWriter(new OutputStreamWriter(sk.getOutputStream()));
System.out.println("[服务器说]:"+is.readLine());
String message=sin.readLine();
while(!message.equals("bye")){
os.println(message);
os.flush();
System.out.println("[我说]:"+message);
System.out.println("[服务器说]:"+is.readLine());
message=sin.readLine();
}
System.out.println("本次对话结束!");
os.close();
is.close();
sin.close();
sk.close();
}catch(Exception e){
e.printStackTrace();
}
}



}



JVM 菜鸟进阶高手之路三

笨神大大分享: 在微信小程序里面搜索:JVMPocket,这个小程序是笨神大大提供的,里面可以搜索相关JVM参数,用法。 -XX:MaxTenuringThreshold,这个参数主要是设置YGC的时...
  • lirenzuo
  • lirenzuo
  • 2017年07月22日 10:09
  • 1477

用 wait-notify 写一段代码来解决生产者-消费者问题?

一、生产者代码: package com.edu.chapter03.test; import java.util.Vector; import java.util.logging.Level; i...
  • aishangyutian12
  • aishangyutian12
  • 2016年12月13日 15:48
  • 873

java测试题请各位高手多多指点

package work; import java.util.Random; public class Work {  /**   * 随机生成50个数字(整数),每个数字的范围是[10,50...
  • u013501917
  • u013501917
  • 2014年03月03日 14:25
  • 291

面试题:用 wait-notify 写一段代码来解决生产者-消费者问题

public class ProductTest { public static void main(String[] args) { Clerk clerk ...
  • jyxmust
  • jyxmust
  • 2017年02月24日 10:31
  • 2063

JVM菜鸟进阶高手之路五

参考gc,发现大概一小时运行一次FGC,特别奇怪,笨神一看这样的问题就知道是system gc导致的,rmi默认一小时主动触发一次,由于没有gc日志,通过jstat命令观察2小时发现 ...
  • lirenzuo
  • lirenzuo
  • 2017年07月28日 15:04
  • 1184

一段程序阐述下wait和notify

wait()和notify()函数属于
  • u012170463
  • u012170463
  • 2014年04月16日 11:33
  • 745

Java多线程之~~~~使用wait和notify实现生产者消费者模型

在多线程开发中,最经典的一个模型就是生产者消费者模型,他们有一个缓冲区,缓冲区有最大限制,当缓冲区满 的时候,生产者是不能将产品放入到缓冲区里面的,当然,当缓冲区是空的时候,消费者也不能从中拿出来产...
  • a352193394
  • a352193394
  • 2014年09月18日 23:28
  • 7198

求指错,请高手指点,感谢

/*一.题目:字符串(aaaa(bbbb(cccc,dddd),eeee(ffff)))表示个人层次关系 如输入ffff求其领导  输出aaaa>eeee>ffff ***************...
  • miaomNN
  • miaomNN
  • 2017年03月06日 23:57
  • 29

一段代码…………请无视

绑定 1. 拍摄照片时尽量让身份证充满整个屏幕,且尽量让身份证处于光线充足,背景纯洁的位置。 2. 上传身份证必须是本人且有效的身份证,否则无法登记。 ...
  • Williamwaiting
  • Williamwaiting
  • 2016年04月07日 23:27
  • 167

发一段菜鸟代码

呀哈关于Getthreadcontext,setthreadcontext的。 exe注入程序的。 在vs2010下编译的: 先看汇编代码:...
  • u014675953
  • u014675953
  • 2014年04月13日 13:59
  • 397
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:菜鸟写的一段有问题的Java的代码!请高手指点!
举报原因:
原因补充:

(最多只允许输入30个字)