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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器