Java:リモート接続ごしでファイルを読み書き
文:Jeff Hanson(TechRepublic) 翻訳校正:原井彰弘
2007-12-19 14:20:01
Javaにおいてローカルのファイルシステムを読み書きするために用いられているテクニックやクラス、データ型が、リモート接続の通信を行う際にも同様に用いることが可能なことを説明する。
一方、クライアント(リストBを参照)はポート7776でソケットを作成し、サーバとの接続を試みる。接続が成功すると、クライアントはユーザが入力したデータを読み取り、ソケットの出力ストリームを用いてサーバにデータを書き込む。その後、サーバからデータが返されると、クライアントはそのデータを読み取り、System.outに出力を行う。
リストB
public class TCPClient
{
public static void main(String[] args)
{
try
{
TCPClient app = new TCPClient();
}
catch(java.io.IOException e)
{
System.out.println(e.toString());
}
}
public TCPClient()
throws java.io.IOException
{
java.net.Socket socket = null;
java.io.PrintWriter os = null;
java.io.BufferedReader is = null;
try {
socket = new java.net.Socket("localhost", 7776);
os = new java.io.PrintWriter(socket.getOutputStream(), true);
is = new java.io.BufferedReader(new
java.io.InputStreamReader(socket.getInputStream()));
} catch (java.net.UnknownHostException e) {
System.err.println("Cannot open localhost");
System.exit(1);
} catch (java.io.IOException e) {
System.err.println("IOException: " + e.toString());
System.exit(1);
}
java.io.BufferedReader input =
new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
String userInput;
System.out.println("Enter text to send: ");
if ((userInput = input.readLine()) != null)
{
if (userInput.length() > 0)
{
System.out.println("Sending " + userInput + " to server");
os.println(userInput);
System.out.println("Server response: " + is.readLine());
}
}
os.close();
is.close();
input.close();
socket.close();
}
}
まとめ
Javaプラットフォームが提供しているネットワーク関連のクラスを用いると、ネットワークやリモート通信を利用したアプリケーションを実装することが可能になる。ソケットのクラスを利用することによって、多くのクライアントやサーバとの通信ができるようになるのである。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ
- ホワイトペーパー



