サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
夏の料理
www-cms.phys.s.u-tokyo.ac.jp/~naoki
UNIXネットワークプログラミングに登場する構造体の紹介と正しい使い方 今まで詳しく説明して来なかった sockaddr_un, sockaddr_in, hostent型の 構造体とその正しい設定の仕方について解説します。 正しい使い方は少々面倒なので今まで簡略化して使い方をしてきましたので、 正しい使い方をしたい人は以下を参考にしていままでのプログラムを 書き直してください。 プロセスが持つソケットにプロセス間通信ができるように OS上のアドレスを割り当てるための手続き書類を作成するための sockaddr型構造体があります。これは sys/socket.h 内で定義されています。 struct sockaddr { u_char sa_len; /* total length */ sa_family_t sa_family; /* address family */ char sa
チャットサーバーを自作する チャットのためのCGIは、頻繁にCGIが動かされるので web serverの負担となり、web serverを共有する他の人に迷惑をかけます。 負荷を軽減させる工夫がそれなりにはありますが、本章では CGIチャットとは抜本的に異なる方法で他人に迷惑をかけない チャットシステムを紹介します。 最近は日本もだいぶネットーワーク環境が整ってきてため、 家庭のパソコンもIPアドレスを持つことができるようになりました。 (例えばケーブルテレビでの常時接続でかかる費用は月5000円程度です。 電話代は一切不要です。) すなわち、家庭のパソコンが世界からのアクセスを受けるサーバーマシンと なるのです。IPアドレスが固定されていないかもしれませんが、 それはその都度サーバー利用者に通知すれば済むことです。 なので web server のhttpd を家庭のパソコンに走らせる
Xlib入門 XWindowに絵を描くプログラムを急ぎ作成したい人は、この章を読まずに 本書が提供する nxgraphライブラリを 使うのが賢明です。 時間に余裕があってXWindowに絵を描くプログラムを作る方法を ゆっくり学びたい人は、この章で解説する Xlib入門を読んで 簡単なプログラムを作ってから、市販の詳しい Xlib解説書を 読むと良いでしょう。 Xlibの知識は無いけれど、本格的な3次元グラフィックプログラムを XWindow環境やWindows98環境で作成したい人は、市販の OpenGL解説書を 読んで勉強すると良いでしょう。その人には Xlibは必要ありません。 目次 第1章 Xのグラフィックのメカニズム 第2章 ウィンドウを開く 第3章 描画コマンドをあやつる 第4章 イベントを聞く 第5章 色を織りなす 第6章 絵を使いまわす 第7章 アニメーション 総合目次 渡
OpenGLプログラミングを少し簡単にするヘッダーファイル gluthack.h と 3次元 等数値面(等高面)を描くモジュール isosurf.h の紹介 OpenGL は 3次元汎用グラフィックライブラリの仕様として MS-WindowsでもUNIX X-Window でも広く定着しているライブラリの規格です。 この規格に従ったライブラリが各種OS、コンパイラ用に配布されています。 MS-Windowsの有料のC/C++コンパイラには標準でOpenGLライブラリが付いていると 思いますが、補助ライブラリの glut32.lib が付いていないかも知れません。 その場合はどこかからダウンロードしてください。 UNIXのgccなどにはOpenGLは付いていないので、 Mesa という名の無料OpenGLライブラリをダウンロードしてインストールします。 Mesa は UNIXだけでなく Wi
OpenSSLで安全なネットワークプログラム OpenSSLが提供するライブラリを使うと簡単に暗号化された 通信を行うことができます。 OpenSSLについては私は詳しくは知らないので他をあたってください。 しかし、私が理解した程度で作ったSSLによる通信プログラムを用意しましたので 参考にして下さい。 OpenSSL本家のページ(英語) SSLのサーバーを動かす前の準備 SSLは公開鍵暗号方式のためサーバー側で公開鍵と秘密鍵のファイルを 事前に用意しておかなければなりません。それには openssl コマンドを 以下のようにして実行します。 openssl req -new -x509 -nodes -out public.key -keyout private.key いろいろ尋ねられますが、全部無視してリターンだけでも大丈夫です。 終ると公開鍵ファイル public.key と秘密鍵
ウェブブラウザを自作する 色々なCGIをC/C++言語で作ることを考えてきましたので、 今度は趣を異にして web browser をC/C++言語で作ることを考えてみましょう。 1990年代に登場した web browser は10年も経たないうちに驚くほどの進歩を 遂げました。始めのころの browser は単に指定URLのファイルを Internet経由でダウンロードするだけでした。その後の進歩は今更説明するまでも ないでしょう。 本章ではこの最も原始的な web browser の作り方を解説します。 単に指定URLのファイルをInternet経由でダウンロードして標準出力に表示するだけです。 HTMLタグの解釈は一切しませんし、画像を文書中に表示しません。 興味と自信のある人は、ここで解説する原始 web browser を改良して Lynx や mosaic 並の web br
サーバーの作り方 これまで説明してきたネットワーク通信の方法を踏まえて、 サーバーとなるデーモンのプログラムの作り方に関連した色々な技術を紹介します。 先に紹介した inettcps.cc を基本にいろいろ 改造を加えていきます。まずこれの基本部分は以下のとおりでした。 int s = accept( sb, NULL, NULL ); char rmsg[64], smsg[64]; int len = recv( s, rmsg, sizeof(rmsg), 0 ); rmsg[len]='\0'; len = snprintf( smsg, sizeof(smsg), "Server recv: %s", rmsg ); len = send( s, smsg, len, 0 ); close(s); inettcpsを走らせて、別の端末から telnet コマンドで以下のようにして
ファイルのSbitによる権限の譲渡 HTMLのテキストやCGIファイルはそのpermissionをotherに対して適切に 公開しておく必要がありました。なぜなら HTTPdがそれらのファイルに アクセスするときに一般に他人としてアクセスするからです。 Web server を起動する人は rootですが、web serverは rootとしては 振舞わず、nobodyとして振舞います。nobodyのIDは標準として UID=65534であり、GID=65534のnogroupに所属しています。それゆえ ページはpermissionはotherに対して公開されていないとならないのです。 HTMLやCGIを他人が見たり実行できたりするようにすることには なんらためらいはないでしょう。見せるために作るのですから。 しかし、CGIにファイル書き込むを行わせると困ったことになります。 Otherも
Last revised on May 25, 2000 UNIX & XWindow 環境における C/C++プログラミング言語の基礎とその計算物理への応用を解説します。 このホームページの古い版の偽ミラーサイトが存在するのでご注意ください。 本物のサイトは http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/ です。 前書き 推奨図書一覧 C言語とC++言語の基礎文法の初心者向け解説 (プログラム初心者を対象としたC/C++言語の入門です) 第1章 C言語とC++言語の役割 第2章 簡単な計算 第3章 ループで繰り返し計算 第4章 配列で大量データ処理 第5章 関数で計算の分担 第6章 文字列の操作 第7章 ファイルの操作 第8章 グラフィック(XWindow System利用者向け) 高校物理の計算例 (高校生を対象として初歩的な物
日本語漢字コードの変換 日本人相手のCGIでは必ず日本語をデータとして処理しなくてはなりません。 本書で配布している form.cc は日本語を自動的に適切に処理する ようにしてありますが、いちおう日本語の処理の仕方も学んでおきましょう。 ASCII文字(英数記号等)以外の文字のコンピュータでの指定方法には色々あります。 ここでは日本語の文字の指定方法の3大主流である EUC,SJIS,JIS の 日本語コード間での変換プログラムを作成することを考えます。 単に日本語と言っても、漢字、ひらがら、カタカナの他にも全角の英数字や ギリシャ文字、キリル文字、数学記号、グラフ記号、罫線、等があります。 さらに半角カナや半角句読点もあるので厄介です。 ● 漢字コードの種類と特徴 ■ JISコード お馴染み日本工業規格 JIS(Japanse Industrial Standards) の JIS X
C/C++言語によるCGIプログラミングの設計入門 Webpageを対話的にするCGIプログラムをC/C++言語で設計 する方法についての解説です。 Last revised on May 6th, 2000. 目次 CGIとは何か 現在時刻の表示 色々なファイルの返送 Server side イメージマップ Client side イメージマップ 書き込みFORMの文法 FORMデータの処理 漢字コードの処理 アップロードの処理 電子メールの送信 Sbitによる権限の譲渡 アクセスの排他処理 原始的な電子掲示版 セキュリュティーホール Webserverでのコンパイル サーバーによる認証 パスワードの取扱 Cookieの調理法 特殊なヘッダー命令 CGIの環境変数 SSI:Server side include Java scriptの極一部 画像の作成 アクセスカウンタ アクセスの逆探
LapackをC++で使う Fortranで作られた Lapackライブラリの関数を C++ の プログラムから利用する具体例のメモです。 これらのメモではFortranの原始関数を呼ぶ C++の簡易関数を以下の点に注意して作成しています。 簡易関数は任意サイズの正方行列を扱える template 関数とする。 簡易関数はLapack関数が必要とする作業用変数をstaticに用意する。 簡易関数は入力用変数を上書きしない。出力用変数は外から与える。 簡易関数は行列をC言語形式で扱う。 LapackにはそれをC言語に翻訳した CLapack や、さらにそれを C++流に使えるようにした Lapack++ がありますが、 原本の Fortranの関数を以下で紹介するようにC++で呼び出すのが もっとも簡潔でしょう。 実行列の線形方程式を解く 実一般行列 Aの方程式 A x =b を解く (dg
UNIXネットワークプログラミングの簡単な解説 UNIXはネットワークとともに進歩してきたOSです。そのため、 洗練されたネットワーク通信手段をプログラマに提供してくれます。 ここではTCP/IP と UDP/IP のプロトコルによる通信を行うプログラムをC++で 作成する方法を簡単に解説します。 C++と言ってもclass を使わないほとんどCなC++です。 目次 とにかく試してみよう ネットワーク通信用語の基礎知識 IPアドレスの入手 LOCAL DGRAM 型の通信 LOCAL STREAM 型の通信 INET DGRAM 型の通信 INET STREAM 型の通信 構造体の紹介と正しい使い方 バイトオーダーとエンディアン クライアントのアドレスの入手 特権ポートとリモート認証 サーバーの作り方のまとめ Inetdを使った簡単なデーモン OpenSSLを使った安全な通信 この章で登場
MS-Windows上では mode 文字列にはさらに 't' または 'b' を 加えることでテキストファイルとして読み書きするか、 バイナリファイルとして読み書きするかの選択ができます。 UNIX上ではその意味はありません。 fdopen関数は既に低水準でファイルが開いている場合に、 それを高水準でも扱えるように、その descriptor を扱う file stream を 作成します。 fileno関数は file stream の核をなす file descriptor の番号を返します。 fputs,puts,fgets,gets 一行読み書き #include <stdio.h> int fputs(const char *str, FILE *stream) int puts(const char *str) char* fgets( char *str, size_t s
gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー
研究 研究内容の紹介 波動関数の時間発展を計算機で効率良く計算する方法を考えています。 博士論文審査会での発表資料 Netscape, IE で閲覧できます(要JavaScript)。 雑記 Let's Note に FreeBSD Let's note CF-L1XR に FreeBSD 4.1 を install した記録です。 AmS-LaTeXに関するメモ TeXの数式のレイアウトをより便利にする方法についてのメモです。 TeXで研究発表用の原稿を作る方法 大きな文字でカラフルに描けば TeX でも研究発表用のOHPやポスターを作れます。 発表用OHPやポスターをホームページにはる方法 複数ページのPostScriptファイルをGIFにしてホームページに載せる方法です。 TeXで名刺を作る方法 ごく普通のタイプの名刺をなんとなくTeXで急いで作りたい人は使って下さい。 POP be
このページを最初にブックマークしてみませんか?
『Index of Naoki Watanabe's Home Pages』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く