トップページ⇒tech
956コメント340KB

ネットワークプログラミング相談室

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
主にソケットに関してのFAQ
0002名無しさん@お腹いっぱい。 NGNG
なにが聞きたいんじゃ?
00031>2 NGNG
ゲームプログラミング相談室ほパクったものなのて私は特に何を聞きたいというわけではないです。
0004名無しさん@お腹いっぱい。 NGNG
>ほパクったものなのて
(゚Д゚)ハァ?
00051=3>4 NGNG
ほパクった → をパクった
0006名無しさん@お腹いっぱい。 NGNG
RMI使えばソケットの知識必要なし。
0007名無しさん@お腹いっぱい。 NGNG
>>3
プラットフォームはなんでもあり?
00081=3>7 NGNG
OKです。答えが返ってくるとは限りませんが。
0009名無しさん@お腹いっぱい。 NGNG
>>4 爆笑した。
0010名無しさん@お腹いっぱい。 NGNG
勉強したいのですが
いい本教えて下さい
0011優しい君 NGNG
>>10 http://mentai.2ch.net/test/read.cgi?bbs=prog&key=960830594
0012>11 NGNG
う、同じスレをリンクしようとして開いていた。
リロードしてよかった・・・
0013初心者 NGNG
ソケットとOSI参照モデルの7層との関係を教えてください
0014名無しさん@お腹いっぱい。 NGNG
>>13
あんま関係ない。
強いていえばセッション層に含まれる手順だけど、
OSIモデルを意識してソケット使うことって、あんましないよね。
0015名無しさん@お腹いっぱい。 NGNG
OSIモデルよりソケットライブラリのほうが歴史があるんだっけ?
0016名無しさん@お腹いっぱい。 NGNG
OSIは、簡単に言うと標準化団体の学者馬鹿によるフライング。
部屋にこもってる世間知らずのじいさんたちの世迷言。

CMIPは誰も使わないし、TCP/IPはOSIと関係ない。
0017ういろう NGNG
Perlでソケット使える無料Webスペースがないので実験できないです
0018名無しさん@お腹いっぱい。 NGNG
OSIは、お勉強として参考にするには良いって聞いたけど
本当ですか?
0019cafe NGNG
OSIか。わけのわからん標準だったな。各層でダブりが多かったし、
実際に7層あるプロトコル無いし。
解説書書いてる人も、訳分からなかったんだろうな。
0020名無しさん@お腹いっぱい。 NGNG
>>17
もし Windows を使っているならば、
ActivePerl という無料の Perl 実行環境があるので、
それを使いましょう。

[ 参考 ] Windows 95/NTでPerl&CGIのページ
http://www.att.or.jp/perl/win/nt_cgi2.html
0021>16 NGNG
しかし、TCP/IP本は必ずといっていいほどOSIも載せるから勘違いしている人も多いんだよな・・・
0022ソケットと NGNG
http,ftp,smtpなどとの関係はどのようになっているのでしょうか?
0023>22 NGNG
ソケットは入出力の口にすぎんので、アプリケーションプロトコルは、
プログラムで実装してください。
0024名無しさん@お腹いっぱい。 NGNG
広告バナーを先にクリックしないと、
目的とする別のURLを開けられないようにするには
どうしたらよいのでしょうか?
0025ウッハウハ NGNG
広告のイメージに onClick 属性をつけて、
JavaScript でほにゃららってのはどう?

<html>
<head>
<script Language="JavaScript"><!--
function inst(){ alert("アドレスはhogehoge"); return false; }
// -->
</script>
</head>
<body>
0026ソケット入門中 NGNG
>>22
ソケット
  IPアドレスとポート番号を用いて通信するインターフェース
HTTP,FTP等
  ぶっちゃけて言えば、特定のポート番号の別名(HTTPは80等)
〃プロトコル
  サーバーとクライアントの間でコマンドやデータのやり取りをするとき、
  どういうリクエストを送り、どういう応答を返すかの取り決め。
0027初心者 NGNG
>ソケット
>IPアドレスとポート番号を用いて通信するインターフェース
ということは、ソケットとは、TCPプロトコルとIPプロトコルのコネクションを
確立するためのもので、これらのプロトコルとは深く関わっているが、
アプリケーションプロトコルはまた別物で、他に自分で用意しなければならない

という解釈であっていますでしょうか?
0028無名 NGNG
>27 You are right!
002926@あまり自信ない NGNG
>ソケットとは、TCPプロトコルとIPプロトコルのコネクションを
>確立するためのもので、これらのプロトコルとは深く関わっているが、
TCPやIPのヘッダやパケットを覆い隠すという感じ?

>アプリケーションプロトコルはまた別物で、他に自分で用意しなければならない
アプリケーション毎に送る内容が違うから。

俺の勝手な解釈
IP:ルーティング(送りっぱなし)
TCP:転送の確実性の確保(含エラーチェック)
ソケット:TCPやIPのヘッダを意識せず、データを用意するだけでパケットを送れる
  サーバーソケットとクライアントソケットを結ぶファイル記述子のようなもの
アプリケーションプロトコル:通信の方法
  送るデータの形式("GET xxx"や"POST xxx")
  BMPファイルのヘッダ形式のようなもの
0030名無しさん@お腹いっぱい。 NGNG
ソケットを作るときにアドレスファミリとソケットタイプを指定できるので、
必ずしも
>ソケット
>  IPアドレスとポート番号を用いて通信するインターフェース
とは限らないヨ。

>HTTP,FTP等
>  ぶっちゃけて言えば、特定のポート番号の別名(HTTPは80等)
ポート番号は変えられるので、こうとは限らないヨ。

>〃プロトコル
「HTTP」の「P」は「Protocol」のことだヨ。
0031無名選手@投げたらアカん! NGNG
アプリケーション(プログラム)からTCP,UDP等を利用して通信するためのAPI(関数郡)がソケットという理解なんだけど違う?
0032名無しさん@お腹いっぱい。 NGNG
細かいね。。。
0033名無しさん@お腹いっぱい。 NGNG
Windowsでの話ですが。
いまはもうWinSock2を標準にしてプログラミング
してよくなった?
まだ1.1を前提にしなきゃいけないの?
0034名無しさん@お腹いっぱい。 NGNG
>33
Win95にwinsock2を安全に入れる方法を発見すればおっけー
0035名無しさん@お腹いっぱい。 NGNG
IPの偽造ってどこまで出来るものなんですか?
0036名無しさん@お腹いっぱい。 NGNG
>35
はあ?
0037名無しさん@お腹いっぱい。 NGNG
IP MasqueradeとかのNAT技術ってIPパケットの偽造っちゃ偽造だよね。
0038名無しさん@お腹いっぱい。 NGNG
>>22
どうも、アクティブパールって、その為に有ったんですね。
Jパールと両方いれてみようかな?
003936 NGNG
>35
37みたいな意味なら、データグラムのIPヘッダ適当に書きかえれば
いくらでもできるが。そういうことなのか?
0040>34 NGNG
いっしょに日本語版のダイヤルアップ ネットワーク 1.3 (以下 DUN 1.3) をセットアップするという手はダメ?

関連内容
http://www.microsoft.com/JAPAN/support/kb/articles/J046/0/83.htm

日本語版ダイヤルアップネットワーク1.3
http://www.asia.microsoft.com/japan/windows/dun1_3/
0041名無しさん@お腹いっぱい。 NGNG
ソケットには2種類あって、
一つは同一マシンのプロセス間通信用、
もう一つは外部マシンとの通信用ということらしいですが、
どうしてこの二つともが「ソケット」と呼ばれているのでしょうか?
TCPやIPでの外部通信とマシン内部のプロセス同士の通信は
まったく別物のような気がするのですが。
0042名無しさん@お腹いっぱい。 NGNG
>ソケットには2種類あって、
?
0043名無しさん@お腹いっぱい。 NGNG
>ソケットには2種類あって、
おんなじだよ〜。ソケットってのはデータの出入り口の事だから、
データがネットワークを経由して別のマシンに逝こうが、同じマ
シンの別のプロセスに逝こうが、関係ないよ。
0044名無しさん@お腹いっぱい。 NGNG
ストリームとデータグラムの違いね。
0045>>41 NGNG
> TCPやIPでの外部通信とマシン内部のプロセス同士の通信は
> まったく別物のような気がするのですが。
違ったり同じだったり。
とりあえず内部用に127.0.0.1のIPアドレスが予約されてたり。
スタンドアロンのIPCでストリーム通信だってできたり。
0046> NGNG
その別物をなるべく同じようにしようという意図も
少しはあるんじゃないか?
0047> 44 NGNG
> ストリームとデータグラムの違いね。
これは「同一マシン」「ネットワーク経由」の違いとは関係ないゾ。
ネタ?
0048名無しさん@お腹いっぱい。 NGNG
unixの内部プロトコルとIPのことじゃないの?
0049つまり NGNG
同一マシンの違うプロセスと通信するにも
TCP/IPスタック(?)を借りてやらなけらばならないということですか?
0050名無しさん@お腹いっぱい。 NGNG
socket( AF_INET, SOCK_DGRAM, 0 );
IPv4でデータグラム型。つまりUDP。外部と通信可。

socket( AF_INET, SOCK_STREAM, 0 );
IPv4でストリーム型。つまりTCP。外部と通信可。

socket( AF_LOCAL, SOCK_DGRAM, 0 );
Unixドメインプロトコルでデータグラム型。名称なし。同一マシンのみ。

socket( AF_LOCAL, SOCK_STREAM, 0 );
Unixドメインプロトコルでストリーム型。名称なし。同一マシンのみ。

ただ、45のように127.0.0.1をローカルマシンのIPアドレスとして
TCPやUDPで通信することもできるヨ。
0051名無しさん@お腹いっぱい。 NGNG
>49
パイプでもいいよ
0052名無しさん@お腹いっぱい。 NGNG
>49
バイブは違うよ
0053名無しさん@お腹いっぱい。 NGNG
>>52
SVR4だとパイプだろうがソケットだろうが、結局STREAMS配下だから
同じようなもんじゃなかったっけ?
# いや、最近やってないからもはやうろ覚えなんだが
0054名無しさん@お腹いっぱい。 NGNG
>>53
良く読め(藁
0055つーか NGNG
>>53
良く見ろ(藁
0056名無しさん@お腹いっぱい。 NGNG
やっぱり生が一番だよ
0057名無しさん@お腹いっぱい。 NGNG
あげ
0058名無しさん@お腹いっぱい。 NGNG
>>57 なんかききたいの?
0059名無しさん@お腹いっぱい。 NGNG
libpcap.a があると良いですよ。なんつて。
0060名無しさん@お腹いっぱい。 NGNG
私のおすすめはこれ。

UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI・ソケットとXTI
[原書名:UNIX NETWORK PROGRAMMING,Volume 1,Networking APIs:Sockets and XTI〈Stevens,W.Richard〉 ]
ISBN4-8101-8612-1

でも本体価格8,000円です。でもって分厚いです。
(学生の人は図書館行って探した方が良いかも)。
0061名無しさん@お腹いっぱい。 NGNG
定期あげ
0062名無しさん@お腹いっぱい。 NGNG
Vol2出てたね。RPCだって
0063名無しさん@お腹いっぱい。 NGNG
Winsock2.0プログラミングに
「多数の接続を同時に処理しなければならないサーバーでは
WindowsNTとI/O完了ポートを使用する必要があります」(P388)
と書いてるんだけどI/O完了ポートについて日本語で詳しく書かれてる
webサイトを知らないでしょうか?
MSDNやサンプルを眺めてもさっぱりわからなかったもので・・・
0064名無しさん@お腹いっぱい。 NGNG
定期あげ
0065名無しさん@お腹いっぱい。 NGNG
スティーブンスの本もうなかった・・・
0066名無しさん@お腹いっぱい。 NGNG
>63
ちょい前にI/Oコンプリーションポート使って、TCPでの同時接続1000台程度のサーバを組んだ。
マルチCPUを生かしやすいし、サーバの負荷も軽減する。
よくあるパターンで、クライアント接続時にスレッドやプロセスを起動して
処理させるのではコストが高く、主にselect〜recvがネックになる。

とくによいサイトや本は内容に思える。
自分は、Win32マルチスレッドプログラミングとMSDNで理解。
ちなみに、同プロジェクトの人に何度も説明したが、
誰も理解してくれなかった覚えがあり。
0067名無しさん@お腹いっぱい。 NGNG
うむ、俺もCreateIoCompletionPortやGetQueuedCompletionStatusを調べて
理解できる範囲の事しかわからん。
006863 NGNG
>自分は、Win32マルチスレッドプログラミングとMSDNで理解。

Win32マルチスレッドプログラミング買いました。
I/O完了ポートを使ったサーバーのサンプルがそのままついているのはありがたかったです。
本をサンプルソースを眺めてなんとなくですが仕組みは理解することが出来ました。
ありがとうございました。

0069問題提起 NGNG
ダイアルアップソフトのつくり方わかるプログラマ−の人いますか?
�@ISDN回線の2回線をパソコンの画面で制御できる。
�ATAのリダイアル規制をはずして1分間に60回リダイアルできる
�B1つの番号が混んでいたら他の予備に登録した番号をどんどんかけていく
このようなプログラムがわかる人いますか?
わかる人がいたら教えてください


0070>69 NGNG
んなもん作ってどうするんだよ。
0071名無しさん@お腹いっぱい。 NGNG
マルチポスト野郎かい >>69
0072名無しさん@お腹いっぱい。 NGNG
こいつのようなクソのためにリダイアル規制ができたんだよな>>69
氏ね
007371 NGNG
あ、でもこっちには「天才」が付いてない。>>69
0074>70 NGNG
チケット予約とか(藁
0075教えて君 NGNG
HttpでURLに日本語渡すとき、JISコードの前に'%'を付ければ良いのは
分かったのですが、?が%81Hって変換されるのは何故なんですか?
エンコードの方法が良く分からないので教えていただけないでしょうか。

0076名無しさん@いっぱいいっぱい NGNG
ちょっとスレッドの趣旨とずれるかもしれないんですけど、

端末 → NTマシン → UNIXマシン

という構成で中間のNTサーバで複数の端末から送られてくるファイル
を一括して受け取り。その後UNIXに転送しています。
(転送方法は端末→NT、NT→UNIXともFTPです。)

現在はNTサーバに一時フォルダを設けて、そのフォルダの中身を定期的
に覗いてファイルがあれば転送するプログラムを常駐させているのです
が、これをファイルが転送されて来たのをトリガにしてリアルタイムに
転送する方法は無いのでしょうか?
NTサーバでなくUNIXならばftpの設定をいじくって(inetd.confだっけ?)
転送用のバッチを用意すればよかったと思ったけど、NTはさっぱり分かり
ません。何か参考になるURLだけでもいいですから教えてもらえないでしょ
うか?
0077名無しさん@お腹いっぱい。 NGNG
>>76

FindFirstChangeNotification()APIの説明を読んで
適当なプログラムを書くよろし。

俺はスプーラ書くときに必ず使う。
0078名無しさん@お腹いっぱい。 NGNG
>75
1) RFC1738を読め
ftp://ftp.iij.ad.jp/pub/RFC/rfc1738.txt
2)
シフトJISにおける全角?のコードは0x8148で、0x48はASCIIのH。
0079名無しさん@いっぱいいっぱい NGNG
>77さん
ありがとうございます。
早速調べてみます。
0080名無しさん@お腹いっぱい。 NGNG
自分のパソコンにダイアルアップして外からつなぐことはできますか?
可能でしたら方法をおしえてください。
008175 NGNG
>78さん
有り難うございます。どのrfcを読めば良いのか分からず困ってました。
では、もう少し頑張ってみます。
0082名無しさん@お腹いっぱい。 NGNG
単に、シフトJISが2バイトコードである事と
?の文字コードが0x81で始まる事を知らなかっただけのような気が・・
008375 NGNG
>82
いーえ、知ってたのですが一部の2バイト文字の2バイト目がアルファベットに
変わってるが理解できなかったのです。
あ、ひょっとして2バイト目がアルファベットと同じ場合はそのままで
送るのか。。それだったら俺すっげー間抜けだ。。
0084名無しさん@お腹いっぱい。 NGNG
>>83
「アルファベットと同じ場合は」じゃなくて
「ASCII文字だったら」だな。
おっとスラッシュは以下略
008575 NGNG
>78,82,84氏
間抜けな俺に色々有り難う。。あー恥ずかしい。
0086名無しさん@お腹いっぱい。 NGNG
>>80
つまり、屋外からノートとか使って自宅マシンの
ファイルをいじったりてことか?
008780 NGNG
>86さん
そうです。
自宅マシンをずっとネットに続けておけば問題ないのですが、
通信料の問題もあるしずっとつなげつづけることは不可能なんで、
屋外からダイアルアップ接続ができれば便利だなと。
0088名無しさん@お腹いっぱい。 NGNG
>>87 RASとか使えばできたはずなので、調べれ。Network板のほうが
いい答えが得られると思う。
0089名無しさん@お腹いっぱい。 NGNG
フレッツISDNに入ろう
009080 NGNG
>>88さん
どうもです。
RAS…もちょっと勉強が足りんようです。
RAS系のAPI使ったサンプルプログラムさがしてみます。

その前に、家にはモデムしかないけど他に機器を買わないと無理なような…。
0091名無しさん@お腹いっぱい。 NGNG
>>80
今目の前にwin98SEがあるけど、
ダイアルアップサーバなるモノが入ってるから、
多分それじゃねぇかな?
0092名無しさん@お腹いっぱい。 NGNG
>>90
プログラムすることは必要無いと思うぞ。
Windowsにそういう機能があるって。
あと、モデムでも待ち受けできると思う。
009380 NGNG
>91,92
情報ありがとうございます。

残念ながらwin98を持ってないのですぐには試せそうもないです。
なかなか見つからないですが、
win2kでもつかえるダイアルアップサーバーはないでしょうか。
できればソース込みで。

あと、モデムで待ち受けができるのは初めて知りました。
0094初歩的な疑問NGNG
TCPで接続し、send で、例えば100KB のデータを送信した場合、
受信側の recv の返り値は、100KB に満たない場合があるじゃないですか?

こうなる理由はなぜなんでしょうか?
0095名無しさん@お腹いっぱい。NGNG
それだけじゃなんともいえないが・・・
細い線が間に入ってパケットが分割されたとか、
何らかの原因でパケットが損失して再送してもらってる
とかいろいろ考えられる。
0096名無しさん@お腹いっぱい。NGNG
>>94
recv一発で届いたら、ダウンロードの状況表示がいらないことに気がつきませんか?
009794NGNG
>96
いまいち意味がよくわからないんですけど、
それは、送信側が(例えば10MBのファイルなんかを)send一発で出す訳じゃないと思うので、当てはまらないんじゃないかと...
0098名無しさん@お腹いっぱい。NGNG
>>94 普通は何回もrecvするんとちゃうの?
0099名無しさん@お腹いっぱい。NGNG
データが全部そろう前にrecvしてるからでしょ。
0100名無しさん@お腹いっぱい。NGNG
httpでレジュームする場合にはどういったコマンドを送ればいいのでしょうか?
0101名無しさん@お腹いっぱい。NGNG
>>97
回線が混んでいて0.1KB/sしか出ないときも、
それがsendで送った最小単位だと思っているのか・・・
TCPとUDPの仕様を混同してるな
■ このスレッドは過去ログ倉庫に格納されています