0

私は、ソケットを使用する Java で arp のクライアントおよびサーバー プログラムに取り組んでいます。コンパイルすると、このようなエラーが発生します。コードは次のようになります。スタック オーバーフローでコードの詳細を尋ねられますが、このコードの詳細はわかりません。

import java.io.*;
import java.net.*;
import java.net.Socket.*;
class arpserver
{
    public static void main(String args[])throws IOException
    {
        try
        {
            ServerSocket soc = new ServerSocket(2500);
            System.out.println("Server started");
            Socket client = null;
            client = soc.accept();
            String str;
            PrintStream ps = new PrintStream(client.getOutputStream());
            BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
            Runtime r = Runtime.getRuntime();
            Process p = r.exec("ifconfig eth0");
            BufferedReader pin=new BufferedReader(new InputStreamReader(p.getInputStream()));
            String haddr = "";
            String ipaddr = br.readLine();
            int flag = 0;
            while((str = pin.readLine())!=null)
            {
                System.out.println(str);
                if((str.indexOf("HWaddr")) != -1)
                {
                    int tlen = str.length();
                    int hlen = tlen - 19;
                    haddr = str.substring(hlen,tlen);
                }
                else if ((str.indexOf(ipaddr)) != -1)
                {
                    flag = 1;
                }
            }
            if (flag == 1)
                ps.println(haddr);
            ps.close();
            br.close();
            pin.close();
            client.close();
            soc.close();
        }
        catch(IOException io)
        {
            System.err.println("Exception : " + io.toString());
        }
    }
}

コンパイル中にこのエラーが発生します

S:\>javac arpserver.java
arpserver.java:12: cannot access Socket
bad class file: .\Socket.java
file does not contain class Socket
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Socket client = null;
^
1 error
4

1 に答える 1

0

ローカルSocket.javaファイルがあり、このファイルがコンパイルされていないようです。このカスタムSocketクラスは、クラスと同じパッケージ (ルート?)arpserverにあるため、アクセスしようとしているクラスの前に選択さjava.net.Socketれます。

スタンドアロン クラスとして、arpserverクラスをコンパイルする必要があります。少なくとも、生の「コピー アンド ペースト」で問題なくコンパイルできます。

于 2013-03-24T19:17:24.127 に答える