計算機ネットワーク工学 I ・補足


Cによるネットワークプログラミング

Cでもソケットの使い方は基本的にJavaと同じである。 ただし、構造体やポインタを用いるためにやや複雑に見える。 さらに、Cではスレッドが一般的でないので、複数の接続をサポートするために selectというシステムコールを用いる。

FTP, TELNET, SMTP, POP3など

プリントではHTTPプロトコル(のごく簡単な)例しか取り上げていないが、 他のプロトコルでもソケットの作り方などは同様である。 各プロトコルの詳細についてはRFCを参照する必要がある。

主なプロトコルのRFC


Servlet

JavaをWWWのサーバサイドで用いる技術として、Servletが有名である。 これはCGIと同じようにWebページをサーバ側で動的に生成するための仕組みである。 ただし、セッションなどの強力な仕掛けを利用することができる。

もっとも単純な例として、 現在の(サーバの)時刻を表示するServletのソースコードを示す。

MyDate.java

import java.io.*; import java.util.*; // Date用に必要 import javax.servlet.*; import javax.servlet.http.*; public class MyDate extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<html><head></head><body>"); Date d = new Date(); out.println(d.toString()); out.println("</body></html>"); out.close(); } }

Servletを実際にWebサーバに置いて実行させるためには、 Servletを起動するためのプログラム(Servletコンテナ)が必要である。 ソケットなどのネットワーク処理はServletコンテナがやってくれるので、 Servletのプログラム自身はHTML(など)のコンテンツを生成するだけである。

Servletの実際の設置の方法はServletコンテナにより異なる。 Servletコンテナとしては、Apache tomcatが有名である。

RISE演習2の情報ネットワーク工学講座担当分では Servletの作成をテーマとして取り上げる予定である。


もどる
Koji Kagawa (kagawa@eng.?????)