你的代码不对,
while ((s = in.readLine()) != null) {
strin += s + "\n";
//System.out.print("!" + s + "\n");// for debug
};
他会连续读取,当读了第一个,而第二个还没有发的时候,要知道,这个循环是很快的,他就读出NULL了。循环就结束了你要这么写,无条件循环,当接受到特定字符的时候退出循环。
while (true) {
s = in.readLine();
if(s=="tuichu")break;
strin += s + "\n";
//System.out.print("!" + s + "\n");// for debug
}
while ((s = in.readLine()) != null) {
strin += s + "\n";
//System.out.print("!" + s + "\n");// for debug
};
他会连续读取,当读了第一个,而第二个还没有发的时候,要知道,这个循环是很快的,他就读出NULL了。循环就结束了你要这么写,无条件循环,当接受到特定字符的时候退出循环。
while (true) {
s = in.readLine();
if(s=="tuichu")break;
strin += s + "\n";
//System.out.print("!" + s + "\n");// for debug
}
解决方案 »
- 在spring 的官网上没找到jar包下载,只有spring tool suit请问怎么获得jar包
- solr配置多个索引的问题,急!!!!!
- 在仿写spring时遇到的问题
- 请问怎么用dom4j合并两个xml文件
- 备份老无法获得磁盘分区
- struts+hibernate+tomcat的jndi,这其中的hibernate使用tomcat的jndi的关键是??
- 关于用ad存储用户的权限,在java中用ldap获取用户的权限的问题
- native2ascii的使用方法
- 求解,想实现这样的效果,应该怎么取数据?前台如何遍历?
- 系统分层管理怎末做呢
- 去除EJB, 什么办法改动最小
- 后台的数据一旦发生变化就要立即显示在页面,请问该如何实现?
System.out.print("Enter to continue!_");
String str = inp.readLine();//就是暂停一下要敲一个回车才能继续发送第二个包,然后用那个while接收数据我就是不知道是
1、第二个包发出去以后根本没有接收到数据(第二个数据包也没有问题,把它放到第一个发也能受到正确结果)
还是
2、 收到数据了没有读出来 我怀疑是不是bufferedreader中的buffer的指针已经到最后了所以读出的是null!
怎么让BufferedReader中的buffer恢复成原来的样子?
有的时候 不同的语言的Socket是稍微有些不同的
你把String str = inp.readLine(); 里面的str仔细看看,会不会是在字符串结尾处有些换行符阿或者其他一些看不见的字符!
while ((s = in.readLine()) != null) {
strin += s + "\n";
//System.out.print("!" + s + "\n");// for debug
}改为
while(true)
{
try{
s=in.readLIne();
}catch(IOExcepiton e) if(s!=)
{
}
}
while ((s = in.readLine()) != null) {
strin += s + "\n";
//System.out.print("!" + s + "\n");// for debug
}改为
while(true)
{
try{
s=in.readLIne(); //此处如果接收不到数据,会一直监听,不会继续往下执行!若连接断 则会捕获到异常.
}catch(IOExcepiton e)
{
System.out.println("已和服务断开连接!")
}
if(s!=null)
{
strin += s + "\n";
}
}
断开连接他会抛出错误的在 for (int loop = 0; loop < 8; loop++) {
这个循环里 当loop=0的时候能执行,但是当loop=1再执行回来到readline的时候就出不来了。
你不是有两个循环么??? 两个循环肯定不行的
for(...)
{
// 发了一句话
while(s=in.readline()!=null)
// 显示一句话;
}
可改为:
for(...)
{
// 发了一句话
}
while(s=in.readline()!=null)
// 显示一句话;或者:
for(...)
{
// 发了一句话
s=in.readline();
// 显示一句话;
}
...
{
// 发了一句话
}
while(s=in.readline()!=null)
// 显示一句话;////这个,我是要根据第一次返回的数据来决定第二次要发什么的,这个好像是一次全部发完再收,好像不行for(...)
{
// 发了一句话
s=in.readline();
// 显示一句话;
}
...
//// 这个,每次返回的数据不是一行而是很多行,而且中间可能有空行,所以很麻烦。