关于java的telnet程序受信方面的问题!快点救救我呀!可以再加100分!

sujiayi 2005-10-20 03:38:50
我用java做的telnet程序,发送命令如dos下的dir,返回一些正常的数据,如果我再发一便cd temp,结果受信的时候把上一次dir的结果,又重新收一遍了,怎么处理呀!我只想要我发完命令后改命令响应的结果!
socket = new Socket(address, port);
is = new BufferedInputStream(socket.getInputStream());
os = new BufferedOutputStream(socket.getOutputStream());





public byte[] receive() throws IOException {
int count = is.available();
byte buf[] = new byte[count];
if(count > 0) {
count = is.read(buf);
if(count < 0) throw new IOException("Connection closed.");
buf = negotiate(buf, count);}
return buf;
}
...全文
167 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sujiayi 2005-10-25
  • 打赏
  • 举报
回复
大家给我发个程序吧!
赫赫!
sujiayi 2005-10-24
  • 打赏
  • 举报
回复
有谁有telnet程序给小弟发一份呀!
mail sujy_2003@hotmail.com
sujiayi 2005-10-21
  • 打赏
  • 举报
回复
is = new BufferedInputStream(socket.getInputStream());
这个流,是不断的接收数据,新的旧的都在里面
所以,下次读的时候,就又读出来旧的数据了
有谁做过telnet的程序帮我看看呀
sujiayi 2005-10-21
  • 打赏
  • 举报
回复
有谁做过telnet程序的
你们是一次全部读出来后,再进行negotiate处理吗?
还是第一个字符就进行negotiate处理!
TinyJimmy 2005-10-21
  • 打赏
  • 举报
回复
1. 可能是你发送端重新发送了, 检查发送端发送的用的变量
2. 可能接受端变量没有清除

可以肯定, 与stream没有关系
TinyJimmy 2005-10-20
  • 打赏
  • 举报
回复
Stream缓冲不用清的, 是指你用过的变量, 如StringBuffer等
sujiayi 2005-10-20
  • 打赏
  • 举报
回复
我这是在一个线称里写的,要不段的接收
close不行呀
兄弟
java的socket有这个问题?
上一次的数据不自动清空!
believefym 2005-10-20
  • 打赏
  • 举报
回复
close就自动清空了
sujiayi 2005-10-20
  • 打赏
  • 举报
回复
BufferedInputStream
这个类里没有flush函数
viano 2005-10-20
  • 打赏
  • 举报
回复


flush
sujiayi 2005-10-20
  • 打赏
  • 举报
回复
怎么清理呀!
兄弟!
快点就就我把!
TinyJimmy 2005-10-20
  • 打赏
  • 举报
回复
缓冲区发完了要清理

62,612

社区成员

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

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