这个套接字错误是什么意思?

时间:2013-01-28 23:32:54

标签: html http sockets

首先感谢大家在这里回答问题。我把这个论坛用作java圣经。这是一个家庭作业问题,这里是作业:

  

用Java编写程序,使用套接字连接到端口80上的Web服务器,使用HTTP协议的GET请求网页,并显示生成的HTML

不确定我是否正确行事。我对java的理解非常有限。其中大部分来自我经历过的教程。任何网站链接将不胜感激。

这是我的错误消息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Type mismatch: cannot convert from java.net.Socket to Socket
The method getInputStream() is undefined for the type Socket

这是我的代码:

import java.io.*;
import java.net.*;
public class Server
{

    public static void main(String[] args) throws Exception
    {
        Server SERVER = new Server();
        SERVER.run();
    }

    public void run() throws Exception
    {
        ServerSocket one = new ServerSocket(80);

        //these are the two lines of code it is warning about

        Socket myskt = one.accept();
        InputStreamReader IR = new InputStreamReader(myskt.getInputStream());

        //end of warnings

        BufferedReader BR = new BufferedReader(IR);

        String message = BR.readLine();
        System.out.println(message);

        if (message != null)
        {
            PrintStream PS = new PrintStream(System.out);
            PS.println("Message Received");
        }

        URL website = new URL("www.dogs.com");
        URLConnection yc = website.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
        yc.getInputStream()));
        String inputLine;
        while ((inputLine = in .readLine()) != null)
        System.out.println(inputLine);

        one.close();
    }
    // TODO Auto-generated method stub
}

1 个答案:

答案 0 :(得分:3)

问题是我们的代码格式不正确 - 您有编译错误。我的猜测是你在与你正在编译的类相同的包中有一个类Socket,或者在类路径上有一个遗留类文件(Socket.class)。当编译器运行时,它使用Socket的包本地版本,它与java.net.Socket的类型不同 - 因此是例外。

在声明myskt

时,要解决此问题,请使用完全限定名称java.net.Socket