首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送EOFException时ObjectOutputStream

发送EOFException时ObjectOutputStream
EN

Stack Overflow用户
提问于 2017-05-03 17:00:00
回答 1查看 556关注 0票数 1

我试图向运行在端口80上的服务器发送一个空白的TCP数据包,但是当服务器响应时,它会给我一个EOFException。

java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2624) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3099) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853) at java.io.ObjectInputStream.(ObjectInputStream.java:349) at me.adamstephenson.test.main.main(main.java:106)

代码语言:javascript
复制
ArrayList<String> results = getIPs();

    for (String ip : results){
        System.out.println(ip);

        String pingip = ip;
        pingip = pingip.replaceAll("[^\\d.]", "");
        System.out.println(pingip);

        Socket socket = null;
        ObjectOutputStream oos = null;
        ObjectInputStream ois = null;
        try {
            socket = new Socket(pingip, 80);
            oos = new ObjectOutputStream(socket.getOutputStream());

            ois = new ObjectInputStream(socket.getInputStream());  // error here

            String msg = "blank";
            oos.write(msg.getBytes());
            oos.flush();

            //read the server response message
            String message = (String) ois.readObject();

            System.out.println(message);

            ois.close();
            oos.close();
            socket.close();
        } catch (ConnectException | EOFException e) {
            System.out.println("Failed to connect to: "+pingip);
            e.printStackTrace();
        }


    }

EOFException是否意味着响应是空白的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-03 17:17:46

这意味着服务器在关闭套接字之前甚至没有创建ObjectOutputStream。可能您发送了一些它不理解的东西,也许它使用的应用程序协议根本不涉及序列化。

毕竟,端口80是为HTTP保留的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43766021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档