[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/04 09:14 / Filesize : 232 KB / Number-of Response : 915
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



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

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辺り
足りなかったら適当に付け足してね

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

関連スレ
Java ネットワークプログラミング 【教えて!】
pc11.2ch.net/test/read.cgi/tech/1086238859/

730 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 02:28:39 ]
別に名乗ってないかもしれんじゃないか
まぁわからんが

731 名前:709 mailto:sage [2008/11/22(土) 05:20:17 ]
すまん、亀レスってレベルじゃないが>>717thx


732 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 19:25:50 ]
>>709
亀レスだが、自分はこの2冊で入門はなんとかなった。
ttp://www.amazon.co.jp/dp/4274065197
ttp://www.amazon.co.jp/dp/4797323302
で、次にWebの情報サイトを横目に見つつ、rfcとか、TCP/IP FAQとか読んだ。
>>3-7 も半分ぐらい読んでる。
詳解TCP/IPシリーズとマスタリングTCP/IPは仕事で使うなら目を通すべき。
あと、パケットキャプチャソフトを自作するって本が数冊出てるので、
パケットキャプチャして遊んだ。デバッグの効率も上がるし。

733 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 23:43:12 ]
recv()一回でひとつのメッセージを取得できる保証しろって騒いでた奴いたなー

734 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 05:22:02 ]
>>728
バッファ持ちまわるの面倒だから結局そういう事やらないよね。
ラッパー作る暇ないし。

735 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 09:59:38 ]
本気か?

736 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 11:26:10 ]
>>734
余計に受信できてしまったらどうするの?
1byteごとにrecv?

改行区切りみたいな読んでみないと終わりが分からないデータじゃなければ、
データ長いれるとかやりようはあるけど。

737 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 11:43:22 ]
>ラッパー作る暇ないし
どんだけ無能なんだよ

738 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:48:37 ]
dup2等を使って、stdioにやらせる手法はあるけどね。ブロックしても構わない用途なら。
まあ一般的だとは言いがたいけど。



739 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 21:19:42 ]
普通に受信して区切る処理はゼッタイ必要なんだから
ラッパにしたほうが楽でしょ

740 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:06:57 ]
いや、そんないつ使うか判らんもの作る暇ないって。
一時期はおれも汎用性の夢をみたがな。所詮は無駄な贅肉だよ。
ソケット関係は毎回毎回要求仕様と微妙にかみ合わなくて
ラッパーなんか作るだけ無駄だと悟ったよ。

741 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:09:42 ]
使い捨ての軽量ラッパ作ればいいんじゃね

742 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:20:01 ]
wrapperと汎用ライブラリがごっちゃになってない?

743 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:25:15 ]
>>740がどんな実装してるのか気になる
本当に1バイトずつrecvしてるのかな

744 名前:デフォルトの名無しさん [2008/11/25(火) 20:09:58 ]
大学のUNIXOSでネットワーク対戦できるC言語のプログラムを作りたいです。
何かオススメの本とかサイトはありませんか?

745 名前:デフォルトの名無しさん [2008/11/25(火) 20:19:24 ]
Javaネットワークプログラミング(オライリー)っておすすめかお(´・ω・`)
読んだ事ある人いたら教えて欲しいお。

746 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:42:43 ]
大学のUnixマシンでネットワーク対戦リバーシつくったが、
ネットワークよりXlibに苦労した。。。

747 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 21:03:38 ]
>>744
UNIX系は情報が入手困難で収集にも時間が掛かりすぎます。
結局>>745のようにJavaとかになったりします。
最初からWindowsで考えるのがおすすめですよ。
大体1/10から1/100程度の開発時間が短縮できます。

748 名前:デフォルトの名無しさん [2008/11/25(火) 21:57:27 ]
うざいな。
そんなことあたりまえでしょう?



749 名前:デフォルトの名無しさん [2008/11/26(水) 03:22:58 ]
だから、素直にJavaにしとけって。Winだろうが、Unixだろうがプラットフォームごとに
勉強する必要ないぞよ。1つ覚えれば、Write once, Run anywhereだ!

おまけに言語使用もそんなに難しくない。ネットワークなんかJavaでも一番わかりやすいんだから!

750 名前:デフォルトの名無しさん [2008/11/26(水) 03:24:41 ]
>>745
その本はいいけど、古いよ。昔のJavaのメソッドとか書かれてるし、
今推奨じゃないのがけっこうあるよ。

でも、もんのすごく低レベルな初心者でもわかりやすく描いてあるから
一応モススメ。

751 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 03:52:03 ]
>>749
え?winsock って bsdソケットとお作法が違うのですか?イベントドリブンに書くことは理解していますけれども。

752 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:21:49 ]
×Write once, Run anywhere
○Write once, Debug anywhere

753 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:34:32 ]
>>751
必要なライブラリも違うし、Closeするときも関数名が違うし
WSAStartup、WSACleanupなんてWinsockだけだし…

そういう違いで悩みたくないならJavaのほうが良いねと言うお話

754 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:15:40 ]

ttp://xy.yu.to/ (ここは本来のサイトではないが)
この荒れまくりカオス絵チャのminiっていう部屋の
秘密スペース(枠外)への書き込みってどうやれば
できるようになるのか解析して教えろ。

あと、1人の防衛プログラマーのクリアツールが強すぎて、
荒しプログラマーがことごとく全員返り討ちになってるから
オマエラが面白くしてみろ。

ゲハハハごめんね

755 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:50:26 ]
>>753
そんなの大した違いじゃないじゃん。

Winsockはbsdのソケットを踏襲している。

それに加えてマイクロソフトの大好きなウインドウズメッセージを使った別物のセットも含まれている
ってだけのことじゃんか。

違いといえばclosesocketかcloseか、あとはアプリ起動時に一回呼ぶだけのWSAStartupと終了時に同じくWSACleanup。
こんな違いならパラダイムやアルゴリズムに差は出ない。


756 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:50:33 ]
>>753
なるほど、しらべてみます。

757 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:06:46 ]
>>755
winsockでは
poll()もkqueue()もepoll()もreadv()もwritev()もalarm()も使えない
read()/write()も(そのままでは)使えない
select()はあるが、紛い物のオモチャなので本当にオモチャにしか使えない

winsockで推奨されるのはI/O completion portとoverlapped I/Oの組み合わせ
WSARecv()やWSASend()を使えということだ
別物だと思ったほうがすっきりする

758 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:25:26 ]
ソケットの数が50を超えたりしなきゃ、
poll,kqueue,epoll,/dev/poll,overlapped ioな連中の
出番はないだろ。



759 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:20:47 ]
>>758
select()なんかでいい程度のプログラムなら、それこそJavaでいいじゃん

760 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 04:00:31 ]
Javaはバージョンごとにころころ変わるからヤダ!

761 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 11:02:37 ]
>>759
その一点のみでC/C++ではなくJavaにする莫迦なんて
あなただけです。

762 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:19:19 ]
>>761
つまり移植性重視で、パフォーマンスは求めてないんでしょ?
そういうケースならJavaで、というかJavaがいいんじゃないの?

クライアントなら別だが、そういうケースでサーバを書くのなら
C/C++なんかを選ぶ理由が俺には分からない
実際にはスレッド、シグナルハンドリング、排他制御の方法、
等々移植性の無いことだらけで、ソケットAPIだけ限定したところで
何の意味も無いと思うけど
一体どんなプログラムを仮定しているの?

763 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:33:16 ]
馬鹿か?
パフォーマンスの時点で最後までJavaなんてありえねえよ。
移植したけりゃ#ifdefで切り分けろ。
常識だろうが。


764 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:41:26 ]
>>763
主張が揺れまくってて意味わかんないな
パフォーマンスの時点でサーバーサイドJavaがあり得ないと言い切るぐらいなら
winsockでselect()/recv()/send()を選択するのはそれこそおかしいでしょ
現在のJava server VMの性能がどの程度か知って言ってるの?

俺は、C/C++を使うなといっているのではなく、
winsockでのネットワークプログラミングも大体同じだという
主張に反論してるだけなんだけど
IOCPとoverlapped I/Oならプロアクターモデルになるし、全然違うでしょ?

765 名前:デフォルトの名無しさん [2008/11/27(木) 13:50:52 ]
んで、結局、Cで組めばいいのかJavaで組めばいいのかどっちなんだよ!
はっきりしてくれ!

766 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:00:36 ]
Erlangに決まってるだろ。いまどき排他制御なんてダサダサなことするかよ

767 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:43:21 ]
ここでいいのか分かりませんが、Unix系のマニュアルで、よく、
・コマンド名(2)
・関数名(3)
のように、(数)のような記述がありますが、これはどういう意味で
しょう?


768 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:50:35 ]
>>767
常識で考えれば、年齢だな
お姉ちゃん(17)
とか




769 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:53:53 ]
セクション
man 使ってないとあまり・・・

770 名前:761 mailto:sage [2008/11/27(木) 15:58:26 ]
>>764
>主張が揺れまくってて
「自分に反論してくるのは世界に一人だけ」ってタイプ?

>>765
どういう環境でもネットワーク絡みのプログラミングは出来るから
ネットワーク以外の要素で決めれ。

>>767
>ここでいいのか分かりませんが
違うけど、態々別スレで訊き直すほどのもんじゃないから答えちゃうと
man ページの章番号。
1がコマンド、2がシステムコール、3がライブラリ、4がデバイスとか
決まってる。

771 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:53:09 ]
>>767
write ってコマンドあるよね。man write ってやると、システムコールの write(2)じゃなくて
ユーザコマンドの write(1) がでてきてしまう。

システムコール調べたかったら man 2 write とか man -s 2 write とかやる

772 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 19:39:05 ]
まぁいいじゃんか。JavaでもC++でも
私のためにケンカはやめて

773 名前:デフォルトの名無しさん [2008/12/02(火) 23:08:28 ]
おまえらネットワークプログラミングしろよ!

774 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:28:06 ]
一方、774はお姉ちゃん(17) でネットワークプログラミングを楽しんだ

775 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:33:00 ]
しばらく来ないうちにまたJAVAかCかでもめてたのかよ
答えは出てるだろ
C++
これ以外ない!!!!!
JAVAのできることすべてC++でできる
C++でできてもJAVAにできないことはある
ヴァーチャルマシンにしてもそうだ
JAVAはプラットフォームを問わないってうたい文句があるけど
そのJAVAとPCを介している部分の大多数はCもしくはC++で書かれている
中学生の優等生と東大、京大生を比べているようなもの
当然大学生はCとC++
わかったかアホどもw

776 名前:デフォルトの名無しさん [2008/12/02(火) 23:42:26 ]
Javaネットワークプログラミング買って来た(・ω・)

ネットワークの知識は多少ある程度だけど、この本はかなり簡単な文章で深く掘り下げて書いてあるNE!!
ネットワークのプログラムとは別に知識もつきそうだよ(・ω・)

777 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:08:21 ]
>>775はたぶんSmalltalkをSmallTalkと書いたりするんだろうな
まあ、頑張れ

778 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 02:46:36 ]
一方東大生はRubyを使った



779 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 04:47:28 ]
マジレスすると案があったら作らせるだけ
東大にIT土木はいない

780 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:35:49 ]
東大生が既成の言語なんか使うわけないだろ

781 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 07:23:59 ]
www.google.co.jp/search?hl=ja&q=%E6%9D%B1%E5%A4%A7++RUBY&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=on

782 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:11:17 ]
中学生の優等生 Java / VB / PHP
東大 Ruby
京大 Python
社会人 C/C++


783 名前:デフォルトの名無しさん [2008/12/04(木) 12:46:34 ]


   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)   
. |     (__人__)       社会人っていったら、自作言語だろ・・ それが一番使いやすいだろ・・
  |     ` ⌒´ノ
.  |         }
.  ヽ        }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \



784 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:12:49 ]
微妙にスレ違いかもしれませんが、
global IP を持っていて逆引きもできる host が /etc/hosts に FQDN なしで登録されていると、
gethostbyaddr や getaddrinfo で調べたときに、
/etc/hosts が優先されて FQDN が不明なことがあります。
こういう場合に DNS に直に引きにいけば良いと思うのですが、
そのあたりを簡単にやるほうほうはありますが?

785 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:20:01 ]
echo > /etc/hosts

786 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:16:51 ]
: > 785
permission denied: 785

787 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:14:35 ]
>>784
/etc/nsswitch.conf の
hosts: files dns

hosts: dns files
にしてみたり
/etc/host.conf の
order hosts,bind

order bind,hosts
にしてみたりとか

でも逆にしない方が幸せかも

788 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 02:37:52 ]
>>787
設定を変えれば DNS 優先になりそうですが、
システムの設定を変えられないユーザーもいるので、プログラム側で対処したいなと。



789 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 09:19:28 ]
OSに頼れないなら自分でDNSクライアント部分を書くしかない希ガス

790 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:13:52 ]
逆にOSの設定で動作変えたいときにこんな強引なことされてると腹立つよな

791 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:48:33 ]
>>788
となると res_query(3) とか自分でDNSのリゾルバ呼ぶことになるかな


792 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 19:14:59 ]
なにか手抜きな方法がないかと思ったのですが、やはりそれですかねえ。
ちと頑張ってごりごりやってみます。

793 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:57:23 ]
RTPプロトコルを勉強のために
実装してみたいのですがサンプルになりそうなものって
ありますか?

794 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:03:29 ]
勉強のためならサンプルなんか見ずにやれやw

795 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:53:37 ]
この辺から適当に探してみれば?
ttp://www.voip-info.org/wiki-Open+Source+VOIP+Software

796 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:34:08 ]
UDPのパケットのシーケンス制御って
どうしたいいのでしょうか

797 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:53:44 ]
自分でシーケンス番号振って並べ替えりゃ良いだろ
そんくらいも思いつかないようじゃやめとけ

798 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:16:56 ]
>>797
まぁそうなんだけどさ
効率よく並べ替える方法が思いつかん
ちょっと知恵くださいよ年末だし優しくしてくださいよ



799 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:21:11 ]
うぜえよ低脳

800 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:25:07 ]
配列インデックスにすりゃO(1)でそ
並べ替える、って意味わからん

801 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:36:11 ]
>>798
教えてやったんだから俺にお年玉くれ

802 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 10:16:59 ]
>>798
FIFO でも実装したらどうだ。
それか、漢らしく「シーケンスが狂ったパケットは捨てる」とか。

803 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:15:50 ]
「XX番まで到着したよ」と通知して送りなおしてもらうんですね
わかります

804 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:18:55 ]
TCPでおk

805 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:36:23 ]
いまどきFTPを実装するの面倒だし、HTTPでいいかなって・・・
HTTP/UDPのライブラリとかない?(できればjava)

806 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:40:32 ]
普通にTCPじゃいかんの?

807 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:51:57 ]
ヘンタイですねわかります

808 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 15:05:31 ]
TCPでいいんだけど、LANとか閉鎖ネットで使ったりとかでTCPの信頼性に依存する必要はないときとか。
動画ファイルとか巨大データ・ファイル・サーバからの転送とか個人で使用とか想定してみて。
HTTPとTCPとIPはレイヤーが違うから差し替えるだけ(プラガブルみたいなの)で出来そうじゃないか?
動画ストリーム用みたいな独自プロトコルを策定するのも分かるけど、そういう閉鎖ネットではプロトコルの機能に関心はなくてデータの入出力とストリームの確保だけできればいいから、結局HTTPでいいよ。



809 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 15:26:20 ]
HENTAIにはTSUNAMI

tsunami-udp.sourceforge.net/

810 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 16:06:46 ]
FTPじゃんか。TFTPで暗号機能がプラガブルとかだとみんなハッピーなんだけど、
HTTPやFTPがある層の一つ上にセキュリティ層(アプリ層)を作って、FTP/UDP/SSLとかにすればいいかなって感じはする。
HTTPSとかはHTTP専用に実装してるけど、やっぱ今の仕様策定モデルはMVCとプラガブルでしょ。

811 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 16:32:19 ]
タグ:MVC,プラガブル

812 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:32:43 ]
HTTP にしといて UDP にしたい理由がわからん

813 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:40:41 ]
HTTP仕様(RFC)は、アプリ(サーバ)として広く普及してるから結構いいかも

814 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 01:56:29 ]
ルーター通らないんじゃなくてよ

815 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:23:08 ]
HP見るとかなんでもない用途なら、自作するまでもなく普通にHTTP(のサーバ)使うだろ。
といって今はtsunamiみたいに広範囲向けのudpに興味あるわけでもないし。
やっぱudpは、p to p でかつ永遠に連続転送(強制流し込みw)かな。
HTTPは仕様上セッションが保障されてるから一度で転送して終わり。

816 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:34:54 ]
UDPはいちいちconnectしなくていいという利点がある。
ルータ超えしたければ間でTCPに変換すればいいし。

817 名前:デフォルトの名無しさん [2008/12/11(木) 16:58:39 ]
C言語で同じインターネット内で他のユーザーと通信するプログラムは作れないですか?
writeコマンドみたいな。

818 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:00:17 ]
>>817
writeでいいじゃん




819 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:00:52 ]
すまん net sendと間違えた


820 名前:デフォルトの名無しさん [2008/12/11(木) 17:03:27 ]
>>818
writeだといらない文字まで表示されるので嫌です。
もっと好きな文字を送る方法はないですか?

821 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:05:12 ]
arp

822 名前:デフォルトの名無しさん [2008/12/11(木) 17:17:32 ]
>>821
arpをというのを使えばできますか?
参考HPを教えてください

823 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:19:07 ]
tcpにおける送受信で、
1. recv(or read) で一文字ずつ受信する方法
と、
2. recvでMSG_WAITALL を指定する方法
では、どちらがいいのでしょうか?

補足ですが、今作っているシステムでは、
パケットの先頭3バイトに後続データの長さを格納しています。
よって、1の方法でやる場合は、
まず3バイト受信できるまで、1バイトずつ読み込み、
その後、後続データ長分を受信できるまで1バイトずつ読み込むのようにやるつもりです。
(もっといい方法ありますか?)


824 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:20:56 ]
net sendと同じ条件ならメールスロットに書けば

825 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:28:03 ]
>>823
www.linux.or.jp/JM/html/LDP_man-pages/man2/recvmsg.2.html
>MSG_WAITALL (Linux 2.2 以降)
>このフラグは、要求した量いっぱいのデータが到着するまで、操作を停止 (block) するよう要求する。
>但し、シグナルを受信したり、(中略)した場合には、要求した量よりデータが少なくても返ることがある。

ので、MSG_WAITALLを指定したからといって安心してはいけないかと。

3. recvで必要なバイト数を指定して受信し、実際に受信したバイト数を見て
足りなければ再び recv で不足分のバイト数を指定して受信する方法

が俺のおすすめ

826 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:47:45 ]
ネットワーク対戦でオセロ,ババ抜きなどできるC言語のプログラムを作りたいです。
オライリー以外で何かオススメの本とかサイトはありませんか?

827 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:14:43 ]
ねこでもわかるネットワークでいいんじゃね?
わかりやすいよ

ただしTCPで送信データが分割されて受信される対策について
一切説明してないのが残念な一品です
分かってる人は問題ないんだけどね

俺は一回SENDすると1回のRCVで
全部受信できると勘違いしてたからチンダ
今となってはいい思い出です

828 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:34:40 ]
せめてrecvって書こう



829 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:47:28 ]
ねこはソケットについてあんまり書いてなかったからなあ

830 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:16:47 ]
LAN経由で通信を確立させて、ピンポン方式でデーターを送って応答を返してもらおうと思うのですが、応答が許容待ち時間(10秒)に達したら、データ再送or通信切断どちらのほうが適切なのでしょうか。






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

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

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