liuzhen6835 2015-07-16 01:39 采纳率: 51.2%
浏览 3059

Java中的Socket编程关于多次输入输出的问题,希望给出解决方法

实现了多线程,这是服务端的代码:需求是接受客户端发送的数字,根据数字选择相应的case,当是1的时候要向服务端发送一个user的对象,ObjectInputStream ois=new ObjectInputStream(s.getInputStream());这句话的异常是java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281),

public void run()
    {
        ObjectOutputStream oos=null;
        int choice=0;
        try
            {
                InputStream is=s.getInputStream();
                choice=is.read();
                System.out.println("接受成功"+choice);
            } catch (IOException e1)
            {
                e1.printStackTrace();
            }
        switch (choice)
        {
            case 1:
                try
                  {
                      System.out.println("进入登录验证");
                      ObjectInputStream ois=new ObjectInputStream(s.getInputStream());_**
                        /* ObjectInputStream ois=new ObjectInputStream(s.getInputStream());这句话的异常是java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281),所以我就找到readFully(ObjectInputStream.java:2281)他的解释是
    void readFully(byte[] b, int off, int len) throws IOException {
        int n = 0;
        while (n < len) {
        int count = read(b, off + n, len - n);
        if (count < 0) {
            throw new EOFException();
        }
        n += count;
        }
    }_**
                */      
                      Object obj=ois.readObject();
                        OutputStream os=s.getOutputStream();
                        if(obj instanceof User)
                            {
                                User user=(User)obj;
                                String job=login(user);
                                os.write(job.getBytes());
                            }
                            os.close();
                            ois.close();
                     }
                    catch (Exception e1)
                        {
                            e1.printStackTrace();
                        } 
  • 写回答

2条回答

  • yuke198907 2015-07-16 05:37
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 为什么eprime输出的数据会有缺失?
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题