JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 127.0.0.1とは

127.0.0.1

日本語 127.0.0.1
英語 127.0.0.1
ふりがな いちななにーてんぜろてんぜろてんいち
フリガナ イチナナニーテンゼロテンゼロテンイチ

解説

マシン自分自身を示すIPアドレス
localhost」のIPアドレス版。
ソケット接続等、ネットワーク上での接続において、ホスト名に"127.0.0.1"とすることで、自分自身のマシンへと接続する。
自分自身のマシンで起動しているサーバーに接続する場合に使用する。
ただし、IPアドレスだと分かりにくいため、「localhost」の方を使用することの方が多い。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.net.Socket;
import java.net.ServerSocket;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        // 自分自身にサーバーもクライアントも自分自身のため、
        // ホスト名は127.0.0.1にします。
        String host = "127.0.0.1";

        // ポート番号12345で通信します。
        // ……もし、ポート番号12345が空いてないとダメです。
        // その場合はこの数字を他のにしてください。
        int port = 12345;

        // サーバーは別スレッドで。
        // もちろん、普通は「別のプログラム」をサーバーにします。
        ServerThread thread = new ServerThread( port );
        thread.start();

        try
        {
            // このスレッドを3秒止めます。
            // サーバー側の準備ができるのを待つためです。
            Thread.sleep( 3 * 1000 );
        }
        catch( InterruptedException e )
        {
            // sleep()メソッドを呼んでいる間に割り込みが入ると
            // InterruptedException例外が投げられます。
            e.printStackTrace();
        }

        // 以下、クライアント側の処理。

        // finallyでclose()するためここで宣言します。
        OutputStreamWriter outputStreamWriter = null;
        Socket socket = null;
        try
        {
            // このマシンの、portのポート番号でアクセスします。
            socket = new Socket( host, port );

            // サーバーに文字列を出力するためのストリームを取得します。
            outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() );

            // 文字列をサーバー側に出力します。
            System.out.println( "[クライアント]「あいうえお」を出力します。" );
            outputStreamWriter.write( "あいうえお", 0, 5 );
            outputStreamWriter.flush();
            System.out.println( "[クライアント]「あいうえお」を出力しました。" );
            // [サーバー]待機開始!
            // [サーバー]待機終了。
            // [サーバー]出力開始。
            // [クライアント]「あいうえお」を出力します。
            // あ
            // い
            // う
            // え
            // お
            // [クライアント]「あいうえお」を出力しました。
            // [サーバー]出力完了。
        }
        catch( IOException e )
        {
            // 出力時に問題があったらIOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            try
            {
                outputStreamWriter.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            // ソケットを閉じます。
            try
            {
                socket.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}

/**
*   サーバー側。
*/
class ServerThread extends Thread
{
    /** ポート番号 */
    private int port;

    /**
    *   コンストラクタ。
    */
    public ServerThread( int port )
    {
        this.port = port;
    }
    
    /**
    *   サーバーを起動します。
    */
    public void run()
    {
        // finallyでclose()するためここで宣言します。
        Socket socket = null;
        ServerSocket serverSocket = null;
        InputStreamReader inputStreamReader = null;
        try
        {
            // サーバーを作ります。
            serverSocket = new ServerSocket( port );

            // クライアントからのアクセスを待機開始!
            System.out.println( "[サーバー]待機開始!" );
            socket = serverSocket.accept();
            System.out.println( "[サーバー]待機終了。" );

            // クライアントから送られてきた文字列を受け取る
            // ストリームを用意します。
            inputStreamReader = new InputStreamReader( socket.getInputStream() );

            // 文字を出力します。
            System.out.println( "[サーバー]出力開始。" );
            while( true )
            {
                // read()メソッドで1文字取得します。
                int i = inputStreamReader.read();
                if( i == -1 )
                {
                    // -1が来たら終了です。
                    break;
                }

                // 文字として出力します。
                System.out.println( (char)i );
            }
            System.out.println( "[サーバー]出力完了。" );
        }
        catch( IOException e )
        {
            // 出力時に問題があったらIOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            try
            {
                inputStreamReader.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            // ソケット2とも閉じます。
            try
            {
                serverSocket.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                socket.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}
// Sample.java
import java.net.Socket;
import java.net.ServerSocket;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        // 自分自身にサーバーもクライアントも自分自身のため、
        // ホスト名は127.0.0.1にします。
        String host = "127.0.0.1";

        // ポート番号12345で通信します。
        // ……もし、ポート番号12345が空いてないとダメです。
        // その場合はこの数字を他のにしてください。
        int port = 12345;

        // サーバーは別スレッドで。
        // もちろん、普通は「別のプログラム」をサーバーにします。
        ServerThread thread = new ServerThread( port );
        thread.start();

        try
        {
            // このスレッドを3秒止めます。
            // サーバー側の準備ができるのを待つためです。
            Thread.sleep( 3 * 1000 );
        }
        catch( InterruptedException e )
        {
            // sleep()メソッドを呼んでいる間に割り込みが入ると
            // InterruptedException例外が投げられます。
            e.printStackTrace();
        }

        // 以下、クライアント側の処理。

        // finallyでclose()するためここで宣言します。
        OutputStreamWriter outputStreamWriter = null;
        Socket socket = null;
        try
        {
            // このマシンの、portのポート番号でアクセスします。
            socket = new Socket( host, port );

            // サーバーに文字列を出力するためのストリームを取得します。
            outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() );

            // 文字列をサーバー側に出力します。
            System.out.println( "[クライアント]「あいうえお」を出力します。" );
            outputStreamWriter.write( "あいうえお", 0, 5 );
            outputStreamWriter.flush();
            System.out.println( "[クライアント]「あいうえお」を出力しました。" );
            // [サーバー]待機開始!
            // [サーバー]待機終了。
            // [サーバー]出力開始。
            // [クライアント]「あいうえお」を出力します。
            // あ
            // い
            // う
            // え
            // お
            // [クライアント]「あいうえお」を出力しました。
            // [サーバー]出力完了。
        }
        catch( IOException e )
        {
            // 出力時に問題があったらIOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            try
            {
                outputStreamWriter.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            // ソケットを閉じます。
            try
            {
                socket.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}

/**
*   サーバー側。
*/
class ServerThread extends Thread
{
    /** ポート番号 */
    private int port;

    /**
    *   コンストラクタ。
    */
    public ServerThread( int port )
    {
        this.port = port;
    }
    
    /**
    *   サーバーを起動します。
    */
    public void run()
    {
        // finallyでclose()するためここで宣言します。
        Socket socket = null;
        ServerSocket serverSocket = null;
        InputStreamReader inputStreamReader = null;
        try
        {
            // サーバーを作ります。
            serverSocket = new ServerSocket( port );

            // クライアントからのアクセスを待機開始!
            System.out.println( "[サーバー]待機開始!" );
            socket = serverSocket.accept();
            System.out.println( "[サーバー]待機終了。" );

            // クライアントから送られてきた文字列を受け取る
            // ストリームを用意します。
            inputStreamReader = new InputStreamReader( socket.getInputStream() );

            // 文字を出力します。
            System.out.println( "[サーバー]出力開始。" );
            while( true )
            {
                // read()メソッドで1文字取得します。
                int i = inputStreamReader.read();
                if( i == -1 )
                {
                    // -1が来たら終了です。
                    break;
                }

                // 文字として出力します。
                System.out.println( (char)i );
            }
            System.out.println( "[サーバー]出力完了。" );
        }
        catch( IOException e )
        {
            // 出力時に問題があったらIOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            try
            {
                inputStreamReader.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            // ソケット2とも閉じます。
            try
            {
                serverSocket.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                socket.close();
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/09/22
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。