1

首先感谢所有在这里回答问题的人。我将此论坛用作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
}
4

1 回答 1

3

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

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

于 2013-01-29T04:31:36.190 回答