w98z3h24 2019-01-30 07:51 采纳率: 0%
浏览 392

java socket 服务端接收客户端数据无法停止

客户端以byte流的形式发送一张图片给服务端,客户端传送完毕,并且在控制台输出"发送完毕"四个字出现乱码情况,服务端已经接收完数据却还在每隔大概1秒接收10byte的数据,不会停下来
服务端代码:
private RequestController(Connection con,Vector sockets,String Usr_Nub,String sUsr_Nub,String Message,String str_numOfpic) //#5
{
if (Online_Handle_sql.IfOnline(con,sUsr_Nub))
{
Socket sSocket=this.findSocket(con,sockets,sUsr_Nub);
try
{
DataOutputStream sout=new DataOutputStream(sSocket.getOutputStream());
synchronized (sout)
{
sout.writeUTF("#8 "+Usr_Nub+" "+Message+" "+str_numOfpic);
DataInputStream in=new DataInputStream(this.findSocket(con,sockets,Usr_Nub).getInputStream());
byte[] buffer=new byte[15000];
for (int i=0;i<Integer.parseInt(str_numOfpic);i++)
{
System.out.println("[");
int readlen=0;
while ((readlen=in.read(buffer))!=-1)
{
sout.write(buffer,0,readlen);
System.out.println(readlen);
}

System.out.println("|");
sout.writeInt(in.readInt());
System.out.println("]");
}
}
}
catch (IOException e)
{

        }
    }
    else
    {
        Online_Handle_sql.addRequestUpdate(con,sUsr_Nub,"#8 "+Usr_Nub+" "+Message);
    }
}

客户端:
for (Entry<String,Integer> entry : pic_path_pos.entrySet())
                {
                    UsrChatFrame.this.appendPic(entry.getKey(),UsrChatFrame.this.MessagePanedoc.getLength()-sendMsgPaneLen+entry.getValue()-numOfpic-1); //本地显示发送的图片

                    FileInputStream fin=new FileInputStream(entry.getKey());
                    byte[] buffer=new byte[15000];
                    int readlen=0;
                **  while ((readlen=fin.read(buffer))!=-1)
                    {
                        out.write(buffer,0,readlen);
                        System.out.println(readlen);
                    }**
                    out.flush();
                    out.writeInt(entry.getValue());
                    System.out.println(entry.getValue());
                    fin.close();
                }

没有想明白是什么原因

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-21 01:55
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用