[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 07/09 08:15 / Filesize : 78 KB / Number-of Response : 298
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 23:04:56 ]
主にソケットに関しての質疑応答スレッドです。

Programming UNIX Socket FAQ (日本語訳)
 www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
 www.kt.rim.or.jp/~ksk/wskfaq-ja/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port18
pc10.2ch.net/test/read.cgi/tech/1159692799/

47 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 07:40:33 ]
% dnsip wms.g2.cdn.bcast.co.jp
202.93.94.16 202.93.94.15 202.93.94.18 202.93.94.17

「正確なIPアドレス」の定義がよくわからんが、1つのDNS名が
複数のIPアドレスを持つのは、負荷分散的によくあること。

48 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 06:05:23 ]
>>46
DNSラウンドロビンだのぉ。

49 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 07:12:46 ]
マルチスレッドのスレからきました。
winsockのプログラミング勉強してます。

recv関数でよくselect使用して、タイムアウト処理すると思います。
同じようにして、accept関数のタイムアウト処理をしたいと思ってますが、
accept関数呼ぶ前に、select関数使えないんでしょうか。

FD_ZERO(&readfds);
FD_SET(soc,&readfds);
select(width,&readfds,NULL,NULL,&timeout)

socは、きちんと渡せていたんですが、接続試しても
select抜けられずに、全部タイムアウトになります。
accept呼んでからじゃないと、ソケットの読み取り可能か
わからないのでしょうか。

やりたいこと伝わりませんでしたら、
補足させていただきます。

50 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 07:49:08 ]
selectの最初の引数が気になるけど、それでOK.

51 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 09:32:35 ]
>>50
WSAStartup->socket作成->bind->listen->accept->select呼んでrecv
よくあるrecvのタイムアウトは、こんな順番だと思います。

accept関数もずっと待ち状態になるので、recvのときと同じように
タイムアウトの機能を、追加できないかと考えてます。
WSAStartup->socket作成->bind->listen->select呼んでaccept->recv
なぜか、クライアントから接続してもselectから、抜けられないんです。
タイムアウトだけでしか抜けられません。

・acceptした後でないと、ソケットの読み取り可能かわからず
select関数使え無い。ということがあるのかと思いましたが
気のせいでしょうか。

>selectの最初の引数が気になるけど、それでOK.
selectにも、きちんと引数渡せてるようなので、
どこがおかしいのかわからないです。

もうちょっと、ポイントしぼれるようにがんばってみます。
レスありがとうございました。

52 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:04:44 ]
51です。
あれれ、ソースコード特にどこも変えた覚えないのですが、
listenのときのソケットディスクリプタと
acceptの返すディスクリプタの値比べて、
同じ値が表示されてるの確認作業したりしていたら、
いつのまにかタイムアウトの処理できていました。

んー、ほんとにどこも変えた覚えは無いのですが・・・
原因説明できなくて、すみません。
acceptもrecvとほぼ同じコードで、タイムアウト処理できました。
どうもお騒がせいたしました。
ありがとうございました。

53 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:19:20 ]
acceptのタイムアウトが出来ると、
アプリの終了処理の時に使えますね。

54 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 11:58:52 ]
poll( )なプログラムを、pollを持ってないWIN32環境にselect( )で移植しています。
selectを使ったpollの実装ってどこかに転がってたりしませんでしょうか?
ぐぐったのですがいいのがなくて。
既出だったらスマソ

55 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 13:25:26 ]
pollって1024以上オッケーだっけ?



56 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 16:07:36 ]
>>54
WSAEventSelectで登録して、WaitForMultipleObjectsがWinSockの作法。
WaitForMultipleObjectsの上限に引っかかるぐらいのスケールなら、IoCompletionPort。

57 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 16:38:26 ]
>>54
手抜き移植でソースをなるべく変えずにpoll()を使いたいってこと?
cygwinは、WaitForMultipleObjects()を用いてselect(), poll()を
エミュレートしてるはずなので、cygwinのソースを読むと良い。
つか、移植の手間を一切掛けたくないのなら、ぶっちゃけcygwinで
コンパイルすればいいだけなのだが。cygwin1.dllには依存するけどな。

一から自分で書くなら、>>56の言うようにIOCPがWindowsではもっとも
効率がよく、しかも色々応用が利いて便利だ。NT系のOSでしか使えないが。

58 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 03:37:06 ]
書籍スレで聞くべきかも知れませんが、
中級ネットワークプログラミングみたいな本で
お勧めの本はありませんか?
英語でも構いません。

amazon.co.jpや、お勧め書籍スレ/ページは色々見てみましたが
基礎的なソケットの使い方などの本が多いようです。
それなりに実用的なネットワークソフトの解説のようなものがあれば幸いです。
ソース嫁ってことになるのかも知れませんが、よろしくお願いします。

59 名前:デフォルトの名無しさん [2007/03/04(日) 18:32:12 ]
板違いなのですが、おそらくこちらのスレの方のほうが詳しいと思いますので、
質問させてください。

環境:Windows2000/XP

会社で営業部ドメイン(EIGYO)と、技術部(GIJYUTU)があります。
自分のPCは、GIJYUTUに属してます。
UNC(\\EIGYOU\フォルダ名の形式)を使って、営業部ドメインの
共有フォルダにアクセスする事は出来るのですが、
「マイネットワーク」を開いて、営業部ドメイン(EIGYO)にアクセスする事が
出来ません。営業部ドメイン(EIGYO)自体表示されない。
「マイネットワーク」に、自分が所属していないドメインを表示させる方法って
ありますでしょうか。



60 名前: ◆Z4QrFDzwrY mailto:sage [2007/03/04(日) 20:53:07 ]
>58
プロトコルをヘッダ込みで実装してみるとか
メーラーを作ってみるとかするのがいいと思う
プロトコルのコマンドやフォーマットはネットで探せるし
Etherealを使えばアプリがやり取りしているパケットも見れる
ドライバ、apacheなどのモジュールを作るのもいい
中級を目指すならこれから作るものを定めておいたほうがよいのでは
などといってみる
レベルが上がるにつれて道程は細分化していくから

61 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 22:26:31 ]
\\EIGYOU

62 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 12:21:29 ]
54です。
>>56 >>57 dクス
手抜き移植と言うか、今後のメンテを考えて、
unix/linux版とwin版でできるだけ統一ソースにしておきたいんですよねぇ...

socketのラッパーみたいなのがあるといいなぁとオモタのですが、
自分で書くことにしますです。

63 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 12:28:21 ]
$(GLIBC)/sysdeps/unix/bsd/poll.c じゃダメかい? > selectのpollラッパ

64 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 15:00:24 ]
>>63
$(GLIBC)/sysdeps/unix/bsd/poll.c 使えそうですね。どもです。

65 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 16:38:00 ]
>>57
cygwin.com/snapshots/cygwin-src-20070301.tar/cygwin-snapshot-20070301-1/winsup/cygwin/poll.cc
にそのものずばりのselectをつかったpollの実装がありますた(・∀・)
cygwin_selectを使っているのでこの部分をwin32sdkの_selectに移植する必要がありますがだいぶ参考になりそうです。




66 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 20:13:17 ]
>>65
for (i = 0; i < nfds; ++i) {
fds[i].revents = 0;
if (!cygheap->fdtab.not_open (fds[i].fd)) {

sysdeps/unix/bsd/poll.c ってこんな実装になってるんですね... 総当り(笑)

やはり発想変えてpollになっているところをselectに直すほうがいいのかなぁ。
教えてエロイ人

67 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 20:15:50 ]
根本的にlibevent使って書くとか、
どこでも使えるselectにするとか
するしかないんじゃないの。

68 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 11:11:56 ]
BASIC認証について質問です。

サーバのあるディレクトリにアクセスすると、はじめの1回目の認証で
ダイアログボックスが表示されますが、2回目以降はそのディレクトリ以下に
アクセスしても表示されなくなります。
この機能は、サーバとクライアントどちらの機能で実現されているのでしょうか。

Basic認証では、ログインではなくて、毎回ID、PASSを送信しているということなので
「サーバの方では特に何もせずに、クライアントの方でアクセスしたURLのアドレスを記録しておいて、
2年目以降は、その下のディレクトリにアクセスするときは、初めからリクエストのヘッダに
”Authorization: Basic hogehogehoge”を付けるようにしている。」というふうに考えたんですけど、
どうなのでしょうか。

よろしくお願いします。

69 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 11:39:03 ]
>>68
パケットモニタで調べてみますた。
クライアント側で毎回送ってますね。
Authorization: Basic hogehogehoge
をつけないでGET/POSTすると、応答に
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Basic realm="Login"
みたいなのが帰ってきます。

70 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 12:03:29 ]
>>69
調べていただいてありがとうございます。

BASIC認証で一回アクセスしたら、何らかの仕組みで、
ブラウザの方でそのアクセスしたURL(ディレクトリ)を覚えておいて、
2回目以降そのディレクトリ以下にアクセスするときは、自動的に
ヘッダーにAuthorization: Basic hogehogehoge を付けてるんですね。
ふむふむ。それで、2回目以降はダイアログが出てこなくなると。

BASIC認証できるhttpサーバもどきを、勉強の課題で作ってますが、
サーバ側でなにか大掛かりな仕組みでもあるのかと、心配になりまして。

パケットモニタというのも、知らなかったので勉強になりました。
どうもありがとうございました。

71 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 13:28:19 ]
>>70
そういう調査技能もあると便利だが
HTTPに関してはRFC2616とかに全部定義されている

72 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:16:40 ]
winsockの勉強中に疑問に思ったことの質問です。

sockB = accept(sockA, &addr, &size)のような形で子スレッドで
動かしていて、acceptでブロックされてます。アプリケーション終了時に
親スレッドでclosesocket(sockA)という風に処理していいのでしょうか?

73 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:30:20 ]
>>72
「処理していいのでしょうか?」の意味が、

処理して正しく動作するのでしょうか?
→知らん。試せばわかる。>>72が期待している動作(acceptを抜けるか/抜けないか、
 抜けるときのsockBの値、GetLastErrorの値、etc) を知りようがないのに
 正しい動作も何もない。

一般的にそのような処理をするものなのでしょうか?
→マルチスレッドを真面目に考えたプログラムなら、イベント使って、
 非同期Acceptをするので、このような状況に陥らない。


74 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:21:30 ]
>>73
回答ありがとうございます。

もっとマルチスレッドやイベントについても勉強しないといけないようでした。

75 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 18:56:05 ]
レジュームダウンロードについて教えてください。
サーバ側:ダウンロードしたファイル
クライアント:ダウンロードの途中のファイル
こういう状況だったとします。

1.接続しクライアントに途中のファイルがあるかどうかを確認。
2.クライアント:ファイルを読み込んでハッシュ値を出し、「ファイルの名前:読み込んだ文字列の長さ:ハッシュ値」を送信
3.サーバ:「ファイルの名前:読み込んだ文字列の長さ:ハッシュ値」を受信します。
4.サーバ:読み込んだ文字列の長さ分(Nとします)、ファイルから文字列を読み込んでハッシュ値を出し、クライアントからのハッシュ値を比較
5.ハッシュ値が一致した場合は、seek関数でファイルのポイントをN個移動して、そこから読み込んで順番にデータを送信

こういう感じでしょうか?
修正、追加する場所、その他気をつけることなどありましたら
アドバイスよろしくお願いします。



76 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:26:23 ]
なんでハッシュが出てくるのか分からん

77 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:57:35 ]
Range:bytes=100-

78 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:05:40 ]
REST 100

79 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:24:23 ]
FTPの場合REST 100で100バイト目から取れる根拠は実はRFC959にはないけどな。
もっと新しいRFCがあるのか?

80 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 07:57:54 ]
>>76
同じファイルか、確認のため比較する容量が大きいと転送が大変だと思いまして。

>>76
>Range:bytes=100-
httpのヘッダー情報に、こういうのがあったとは。
でもブラウザは、途中からのものをダウンロードできても、
上書きだけみたいですね。

>>78
ttp://www2s.biglobe.ne.jp/~hig/tcpip/HostReq_Appl.html#HREQAPP_4_1_3_4
サーバ FTP は、データストリーム中の都合の良い箇所に再開マーカ <ssss> を付ける
buf="hogehoge";を送信するとき、
"<ssss>hogehoge"を送信して、
・サーバ側では、send()するとき、<ssss>をbufのどこか適当な位置に挿入して送信
・クライアント側では、recv()するたびに、制御ファイルの(ssss,rrrr) を更新。
・再開するときは、<ssss>を送信。

とリンク先見てこいうことかと想像してたんですが、実際の実装で
送られてくるクライアントに、送信される文字列bufって、どんな形なんでしょうか。
RFCでどこに書いてあるのか探してるんですが、よくわかりません。

81 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:01:48 ]
80です。
通信の中身は、パケットモニタで見るという方法がありました。

82 名前:デフォルトの名無しさん [2007/03/10(土) 09:15:33 ]
>>80
> とリンク先見てこいうことかと想像してたんですが、実際の実装で
> 送られてくるクライアントに、送信される文字列bufって、どんな形なんでしょうか。
> RFCでどこに書いてあるのか探してるんですが、よくわかりません。

とにかくRFCを読んで。
解説ページに惑わされないで。

83 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:18:57 ]
>79
まだdraftだけど。
www.ietf.org/internet-drafts/draft-ietf-ftpext-mlst-16.txt

84 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:00:50 ]
>>83
おお。5.1でSTREAMモードでの再開が規定されとる
> Expiration Date: March 2003
が気になるけど

85 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:59:47 ]
>>75
なにげに、この方法よいのかも?



86 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:03:11 ]
負荷おおすぎねえ?

87 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:51:57 ]
>>86
確かに大きそう。まあSSL通信に比べれば
そんなでも、ないかもしれないけど。

88 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:53:00 ]
アホか
手順4見てみろ

89 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:56:01 ]
DDoSされたら終わりだな

90 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 00:05:22 ]
ハッシュ値持たせるならサーバ側はブロック単位で最初から持っとけよ
クライアント側で計算させて一致しないのだけやり直しが普通の発想だろ

91 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:00:14 ]
>>88
w

>>89-90
同意

92 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 05:51:09 ]
同じファイルかどうかなんてクライアントがETagでも覚えとけよそんくらい。

93 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:28:22 ]
ブロック毎に32bitCRC値を持たせるとしたら、
ブロックの長さはどれぐらいが適当でしょうか。
仮に64kByte毎だと1MB辺り64Byteで済みますが、
これは冗長でしょうか。

94 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:06:46 ]
残りの長さの全部のハッシュを求めないで、
サーバとクライアントでそれぞれ2,3箇所ピックアップして、
ハッシュ求めれば十分じゃん。
あとダウンロードは、なんも処理しないでいいんだし。

ただ、これをいうと、ハッシュじゃなくてもいいんだよな。w
どれだけ'同じファイルであるかの確かさ'を求めるかだ。
毎回なんか処理しながらダウンロードって、しないに越したことは無いでしょ。
突っ込みの嵐の予感。

95 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:37:08 ]
>>94
> ただ、これをいうと、ハッシュじゃなくてもいいんだよな。w

>>76



96 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:53:50 ]
>>93
ブロック長が長くなるほど衝突が増える。
ブロック長が長くなるほど再送に無駄が増える。

後は自分で考えて。

>>94
普通、まずサイズや最終更新時間を調べるでしょ。
そんなわけでFTPだってSIZEとMDTMコマンドがある。


97 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:05:38 ]
まあそれも>>83だけど

98 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:11:12 ]
udpでメッセージを交換する簡単なプログラムを作っているのですが、
可変長文字列で詰まってしまいました。

struct message{
int size;
char buf[1];
}

struct message *p;

p = (struct message *)malloc( sizeof(struct message) + strlen(input) );

送信したい文字列をinputに格納して、その長さに合わせてこのmessage構造体をmallocしているのですが、
受信側ではなぜか文字列が途中で途切れてしまいます。
可変長を実装するにはこのやり方は間違っているのでしょうか?

99 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:31:48 ]
MTUよりでかくなってないか?

100 名前:98 mailto:sage [2007/03/13(火) 01:03:07 ]
MTUが1500で、送信サイズが20byte程度でしたので、MTUを越えてはいないと思います。
今色々デバッグしてみたところ、sendtoで送信できているサイズが、sizeof(struct message)と同じ値でした。きちんとmallocはしているはずなのですが…

101 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:41:23 ]
送信側のsendのところと受信側のrecvのところのコードを晒せ

102 名前:98 mailto:sage [2007/03/13(火) 02:16:30 ]
sendとrecvのサイズを設定する引数が間違っていました。

send:
sendto( s,p,sizeof(struct message) + strlen(input),0,(struct sockaddr *)pfrom,fromlen );

recv:
recvfrom(s,p,sizeof(p)+20,0,(struct sockaddr *)pfrom,fromlen);

といった感じに改造したところ、短いメッセージならきちんと受信できるようになりました。ただ20という数字が適当なので、この部分をきちんとinputの長さに合わせたいです。

103 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:24:59 ]
sizeof(p)がstruct message *pなんだろうなぁ
C言語のテキスト見直ししる。

104 名前:98 mailto:sage [2007/03/13(火) 11:23:32 ]
受信側をsizeof(struct message *p)としましたが、やはり適当な値を受信サイズに加算しないと駄目なようなので、この方法でやろうと思います。
ありがとうございました。

105 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 12:46:23 ]
>>103
> sizeof(p)がstruct message *pなんだろうなぁ

これは>>98のミス原因をつぶやいただけだろ。
Cの勉強し直してくれ。Cが分からないから>>103を誤読する。



106 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 12:49:16 ]
それからC99から、
struct message{
int size;
char buf[0];
}
と定義できるぞ。
これで出来ることは増えないが、サイズ計算が単純になる。
seclan.dll.jp/c99d/c99d04.htm#dt19990726

107 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 14:00:49 ]
>>103
recvfrom(s,p,sizeof(p)+20,0,(struct sockaddr *)pfrom,fromlen);
で、pの宣言がstruct message *pなら
sizeof(p)+20=24ぐらいになるってことでしょ?
paddingとか32bit環境とかは置いといてね。

108 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 20:20:03 ]
> これで出来ることは増えないが、
C99以前は配列の最終要素を踏み越えるのは厳密には未定義じゃなかったっけ

109 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 20:57:03 ]
UDPはパケット境界保持されるんだから小細工しなくていいんでない?


110 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 21:00:07 ]
UPNPのnat traversalで空けたポートに
"本当に"外部ネットワークからアクセスできるか確かめる方法って
外部にそれようのサービス立てておいてそれを叩くしかないよね?

111 名前:デフォルトの名無しさん [2007/03/13(火) 21:03:34 ]
>>110
携帯電話からアクセスしたら?

112 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 21:05:53 ]
すまん言い方が悪かったかな
ポートを空けたプロセス自身から確かめる方法

113 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 19:50:51 ]
ちょっと基本的な事ですいません。
[サーバ(accept側)]−[クライアント(connect側)]
こんな感じで繋がっている時、
1秒間にサーバからsendできるデータの限界量=上り帯域
1秒間にクライアントからsendできるデータの限界量=下り帯域
という概念で合ってるでしょうか。

114 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:51:36 ]
sendがsocket apiのsendのことをさしているなら違う。
sendはtcpの送信バッファにコピーするだけ。

115 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 02:01:58 ]
udpだったらクライアントからはsendできたように見えても
どんどん捨ててるだけということもあり得るし



116 名前:113 mailto:sage [2007/03/15(木) 20:53:07 ]
では、
1秒間にサーバ/クライアントから送信できるデータの限界量=上り/下り帯域(/sec) 
という事でしょうか?

117 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:07:50 ]
ごはんつぶは糊として使えるが
糊=ごはんつぶというわけではない

118 名前:58 mailto:sage [2007/03/16(金) 00:04:01 ]
>>60
さんざん遅れて申し訳ありませんが、ありがとうございます。
しばらく仕事に忙殺されていて死にかけていました。

119 名前:113 mailto:sage [2007/03/17(土) 02:47:41 ]
なんとなく自己解決しました。

120 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 00:54:02 ]
ソケット通信でどっかのHPのCGIに引数を渡すときはどういう応答すればいいんですか?
HTMLで言うところのformからPOSTでCGIを呼ぶってことです。

121 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:04:51 ]
RFC 2616を読む

122 名前:デフォルトの名無しさん [2007/03/18(日) 09:58:27 ]
ここってライブラリの質問もあり?

123 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:05:24 ]
前スレでOpenSSLの話はダメという結論になった

124 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:14:56 ]
じゃあ、このスレ限定でおk

125 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:22:26 ]
>121
まとめてください。



126 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 15:21:00 ]
おらさっさとまとめろやクズ。

127 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 17:17:47 ]
みなさん。スルーで。

128 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 17:29:29 ]
急ぎませんので、今日中にまとめておいてください。それでは。

129 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 21:00:24 ]
わろたw

130 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:02:54 ]
windowsとlinuxの間で、C/C++でソケットプログラミングしてます。
チャットソフトです。

・print、strcpyとか気を付けるのと、ほかになにかあるでしょうか。
・もしも、WEBサイトに文字列を表示させる場合は、メタキャラクタのエスケープ処理ですよね。
検索したところ、これぐらいかと思ったのですが、まだまだたくさんあるでしょうか。

アドバイスよろしくお願いします。

131 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 20:13:39 ]
>>130
ttp://www.freebsd.org/ja/security/#spg
ここが参考になるよ

132 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:57:22 ]
>>131
ありがとうございます。
参考にさせていただきます。

133 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 04:01:45 ]
便乗質問させてください。recv関数は受信される最大サイズが
決まってると思いますが、プログラミングしてて
長さがわからなくなるときって、どんなときですか。

134 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 04:41:28 ]
日本語でおk

135 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 04:43:10 ]
つかマジで機械翻訳なのかな
TCPなら繰り返し受信すればいい
UDPだったら1つのパケットに入りきらないメッセージが来ること自体あり得ない



136 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 16:02:47 ]
>>133
長さがわからなくなるときは、無い
長さは必ず返却される

137 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:24:33 ]
>>136
レスありがとうございます。
ネットワークプログラミングでは、バッファ・オーバー・フローは
気にしなくても大丈夫なんでしょうか。

気を付けて使ってるのかわからないですが、猫でもわかるとか、
他の本でもstrcpy使用してみるみたいです。
strncpy、snprintfは全然見ないような。

138 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:38:07 ]
返された長さにもとづいてやればオーバーフローしないよ
長さを無視してるとダメだけど、
それはネットワークに限った話じゃないし

139 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:01:20 ]
>>137
バッファオーバーフローは無論あってはならない。特にネットワークプログラミング
においては重大なセキュリティホールに繋がりかねないので、強く意識すべき。

C++を使えるのなら、Cなんぞ使わずにstringやvector<>を使うことを薦める。

140 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:02:44 ]
ていうかさ、そんな事を質問している時点で
基本を何も分かってないって事だろ。

まず系統的に解説してある入門書読めよ。

141 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 20:56:11 ]
サンプルソースうpして聞けばいいよ

142 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 02:26:15 ]
>>138-141
レスありがとうございます。
>それはネットワークに限った話じゃないし
>C++を使えるのなら、Cなんぞ使わずにstringやvector<>を使うことを薦める。
とても勉強になりました。ありがとうございました。

143 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 01:22:19 ]
webアプリはクライアントがどのプログラムからhttpリクエストを出してるかということを
判別できるんですか?
ブラウザ(IE)に偽装した形でhttpリクエストを出したいんです。

144 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 01:34:49 ]
>>143
スレ違い
pc11.2ch.net/php/

145 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 11:49:08 ]
>>143
ajax使うしかないな
だが単純に普通にIE使ってたら最初の一発目は偽装不能



146 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:16:33 ]
ひとつのコネクションでデータの送信と待ちうけを行うには
ポーリングするのが一般的でしょうか?

147 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:58:48 ]
俗に言うselect系






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<78KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef