各位大侠 帮帮我啊 困扰我一天了啊~~~~

Guanglew 2012-02-13 07:57:04
我在学socket 通信,出现了问题不知道怎么解决啊:
代码:server :
//发送
public boolean send(byte[] in_data){
if(in_data!=null){
try {
bos.write(in_data,0,in_data.length);
//bos.flush();
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//Logger._o(e.getMessage());
}
}
return false;
}

/**********************/
//接受
public boolean receive(){
try {
int failureCount=0;
while(isOne.frame_end != 1){
if(true){
//isOne.IsOneFrame((byte)bis.read());
System.out.print((byte)bis.read()+" ");
}
else{
failureCount++;
Thread.sleep(200);
}
if(failureCount <= MAX_READ_FAILURE_COUT)
continue;
else
return false;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//Logger._o(e.getMessage());
}
return false;
}


client:
package sdu.ie.lcms;
//客户端
//客户端的(多线程)
import java.io.*;
import java.net.*;
public class SocketClientTrue {

private BufferedInputStream bis=null;
private BufferedOutputStream bos=null;

public byte receiveCommand[]=new byte[20];
public byte[] sendResult=new byte[]{0x11,0x22,0x33,0x55};

public SocketClientTrue()
{
//去连接服务器
try {
Socket s=new Socket("202.194.26.112",8090);
//System.out.println("连接成功!");

bis=new BufferedInputStream(s.getInputStream());
bos=new BufferedOutputStream(s.getOutputStream());

//接受来自上位机的消息
int len=0;
System.out.println("下位机接受到的:");
while(bis.available()>0)
{
receiveCommand[len] = (byte)bis.read();
}
for (int m = 0;m < receiveCommand.length; m++){
System.out.print(receiveCommand[m]+" ");
}
System.out.println();

//向上位机发送处理结果
System.out.println("开始向上位机发送处理结果。。。");
bos.write(sendResult,0,sendResult.length);

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SocketClientTrue scm=new SocketClientTrue();
}
};
错误出现在 server的 :System.out.print((byte)bis.read()+" ");
错误信息:Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sdu.ie.lcms.SocketServer.receive(SocketServer.java:65)
at sdu.ie.lcms.SocketServer.main(SocketServer.java:101)
client 与server已经建立好了连接。。。
怎么解决啊、。。???是不是server发送完了以后 就断开连接了?
...全文
163 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyp907093825 2012-02-17
  • 打赏
  • 举报
回复
代码太多,太乱啦,
interceptor2012 2012-02-17
  • 打赏
  • 举报
回复
还真没看明白
GZTXSJ 2012-02-14
  • 打赏
  • 举报
回复
没学过,先记着
Little_Johnny 2012-02-13
  • 打赏
  • 举报
回复
可能是太难了吧,所以都没人回帖
Guanglew 2012-02-13
  • 打赏
  • 举报
回复
哎 怎么解决啊 愁得慌啊[Quote=引用 1 楼 little_johnny 的回复:]

飘过~
[/Quote]

50,531

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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