127.0.0.1
| 日本語 | 127.0.0.1 |
| 英語 | 127.0.0.1 |
| ふりがな | いちななにーてんぜろてんぜろてんいち |
| フリガナ | イチナナニーテンゼロテンゼロテンイチ |
マシン自分自身を示すIPアドレス。
「localhost」のIPアドレス版。
ソケット接続等、ネットワーク上での接続において、ホスト名に"127.0.0.1"とすることで、自分自身のマシンへと接続する。
自分自身のマシンで起動しているサーバーに接続する場合に使用する。
ただし、IPアドレスだと分かりにくいため、「localhost」の方を使用することの方が多い。
「localhost」のIPアドレス版。
ソケット接続等、ネットワーク上での接続において、ホスト名に"127.0.0.1"とすることで、自分自身のマシンへと接続する。
自分自身のマシンで起動しているサーバーに接続する場合に使用する。
ただし、IPアドレスだと分かりにくいため、「localhost」の方を使用することの方が多い。
// 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();
}
}
}
}
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();
}
}
}
}




