トップページ⇒tech
1001コメント301KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/04/18(水) 17:15:34.85
主にソケットに関しての質疑応答スレッドです。

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

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

前スレ
ネットワークプログラミング相談室 Port26
http://hibari.2ch.net/test/read.cgi/tech/1269343909/
関連スレ
ネットワークプログラミング雑談
http://hibari.2ch.net/test/read.cgi/tech/1235800707/
Java ネットワークプログラミング 【教えて!】
http://hibari.2ch.net/test/read.cgi/tech/1086238859/
0446デフォルトの名無しさん2012/08/08(水) 10:02:08.29
>>445
ショートパケットは負荷高い
0447デフォルトの名無しさん2012/08/08(水) 10:29:59.44
>>446
1パケット/1秒で? 負荷高い?
0448デフォルトの名無しさん2012/08/08(水) 10:40:29.84
日本だとハッキング扱いされて逮捕されるぐらいには負荷高い
0449デフォルトの名無しさん2012/08/08(水) 10:59:17.31
日本だとpingが不正アクセスになる
0450デフォルトの名無しさん2012/08/08(水) 11:10:56.46
ダウンロードしただけで逮捕
0451デフォルトの名無しさん2012/08/08(水) 11:12:25.85
>>448
DOSアタックってどんな容疑で逮捕?
0452デフォルトの名無しさん2012/08/08(水) 11:13:10.67
>>450
○○なものをダウソするとでしょう
0453デフォルトの名無しさん2012/08/08(水) 11:21:01.63
>>451
岡崎図書館事件で検索
0454デフォルトの名無しさん2012/08/08(水) 11:40:41.58
大抵は不正アクセス禁止法違反でしょっ引けるからな
一旦しょっ引いたら監禁して自白強要の力技で終了
0455デフォルトの名無しさん2012/08/08(水) 11:48:38.95
不正アクセス禁止法違反って、パスワードなどのアクセス制御を突破したり回避したりしなきゃ成立しないんじゃない
DoS攻撃はアクセス制御を回避する必要なんか微塵もないから、ただの業務妨害なんじゃない
0456デフォルトの名無しさん2012/08/08(水) 11:52:13.10
まあとりあえず逮捕するんじゃないかな
0457デフォルトの名無しさん2012/08/08(水) 11:57:30.08
とりあえず逮捕して、すったもんだのあげく訴えた側に非があったことに気づいても
体裁のために取り下げできないんだよな。
0458デフォルトの名無しさん2012/08/08(水) 12:23:27.32
金子氏がどうなってしまったか
0459デフォルトの名無しさん2012/08/08(水) 12:24:31.23
それどこの岡崎図書館事件
0460デフォルトの名無しさん2012/08/08(水) 12:47:57.92
>>453
そりゃTCP TIME_WAIT が溜まって?サーバに接続不能になった
おそまつ過ぎるサーバアプリに原因があったのでは
0461デフォルトの名無しさん2012/08/08(水) 13:01:32.98
その脆弱性を突こうとするのは不正アクセスと看做せる
故意か過失は当人にしか分からない、という事は取り調べでどうにでも出来るという事
0462デフォルトの名無しさん2012/08/08(水) 13:02:06.26
>>460
1パケット/1秒のpingで高負荷試験している>>444のサーバに攻撃したら楽勝で逮捕。
0463デフォルトの名無しさん2012/08/08(水) 13:07:35.04
不当逮捕は警察も罰せられるべきなんだけどなー
0464デフォルトの名無しさん2012/08/08(水) 13:09:00.66
ゲイツ砲でurl間違えたら即逮捕だな
0465デフォルトの名無しさん2012/08/08(水) 13:12:28.98
>>447
フラッドオプションでググれ
0466デフォルトの名無しさん2012/08/08(水) 13:14:46.19
まあflood攻撃はインフラ設計時の話であって
プログラミングにはあまり影響はないけど
知らないってのはヤバイ
0467デフォルトの名無しさん2012/08/08(水) 13:32:43.22
>>466
1時間に400アクセスで落ちる某図書館のシステムを作ったSEは?
0468デフォルトの名無しさん2012/08/08(水) 13:35:58.04
まあ図書館のシステムとかど素人が作ってそうなイメージだなw
データつっこんで検索するだけだもんなw
0469デフォルトの名無しさん2012/08/08(水) 13:43:29.04
まあDBの基本だしな
0470デフォルトの名無しさん2012/08/08(水) 14:22:36.42
>>467
三菱なんとかってとこだったかな
0471デフォルトの名無しさん2012/08/08(水) 15:14:29.87
C++やC#でネットワークプログラム作れますか?
0472デフォルトの名無しさん2012/08/08(水) 15:15:39.44
何でその2つなのかわからんけど作れるよ、内容によるけど
0473デフォルトの名無しさん2012/08/08(水) 15:18:42.77
Javaにしとけ
0474デフォルトの名無しさん2012/08/08(水) 16:23:44.84
>>471
>ネットワークプログラム
ワームか
0475デフォルトの名無しさん2012/08/08(水) 22:05:21.21
C++でMMO作ってるよ
0476デフォルトの名無しさん2012/08/09(木) 00:09:51.99
>>471
作れない
0477デフォルトの名無しさん2012/08/09(木) 00:38:10.22
ネットワークプログラムって単語で語りたいだけじゃね
0478デフォルトの名無しさん2012/08/09(木) 10:38:49.27
boostのネットワークって作りこみ甘いよね
0479デフォルトの名無しさん2012/08/09(木) 10:49:39.77
ネットワークプログラミング入門したいのですが何からやるべきなのかとんと見当がつきません
いい入門書はないでしょうか?オライリーの体で覚えるネットワークとか評判いいですけどどうなんでしょう?
0480デフォルトの名無しさん2012/08/09(木) 11:19:15.45
まずはケーブル作りからじゃないか
0481デフォルトの名無しさん2012/08/09(木) 11:39:35.04
>>479
スティーヴンスの遺作を読め
0482デフォルトの名無しさん2012/08/09(木) 11:45:39.89
>>479
知ったかぶりする知識をつけるには良い本だと思うが駄本の香りがするし
そもそもプログラミングの本ではないでしょう。
04834822012/08/09(木) 11:49:47.06
>>479
>>3-4 見れ
0484デフォルトの名無しさん2012/08/09(木) 11:51:10.22
猫でもシリーズは除外だ
0485デフォルトの名無しさん2012/08/09(木) 12:59:43.38
イーサーネットプログラミングといえばTCPIPプログラミングのことでしょうか?
イーサーネットでファイルを送りたいときの一般的なプログラミングとかあったら教えてください
TCPIPプログラミングだとは思うのですが経験がないのでよくわかりません
0486デフォルトの名無しさん2012/08/09(木) 13:05:20.06
イーサーネットプログラミングはイーサーネットをコントロールするプログラムであり一般的にはドライバの部類ですのでファイルを送るなどは関係ありません
0487デフォルトの名無しさん2012/08/09(木) 13:13:35.35
>>485
先ずは通信プロトコルからお勉強してください。
0488デフォルトの名無しさん2012/08/09(木) 13:15:35.07
TCP/IPはイーサーネットより上の層
0489デフォルトの名無しさん2012/08/09(木) 13:26:41.03
ネットワーク層以下を触るようなプログラムなんてそうそうあるんですか?
VPNサービス作るならデータリンク層触らないといけないとかは聞いたことありますが
0490デフォルトの名無しさん2012/08/09(木) 13:31:48.99
VPNだってほとんどがover IPの時代。
0491デフォルトの名無しさん2012/08/09(木) 13:38:46.95
シリアル通信
0492デフォルトの名無しさん2012/08/09(木) 14:23:15.00
確かにシリアル通信はだいたい物理層の直上で作業するな
つーか2〜6層がごっそり抜けていきなりアプリケーション層だよな
0493デフォルトの名無しさん2012/08/09(木) 14:40:45.90
>>485
電気信号にプログラムをデコード・エンコードするのは結構難しい
0494デフォルトの名無しさん2012/08/09(木) 15:41:24.65
パイソンで入門するとわかりやすい
0495デフォルトの名無しさん2012/08/09(木) 16:01:05.15
>>493
>電気信号にプログラムをデコード・エンコードするのは結構難しい

それは物理層の責務だよ
そして、>>485の言うイーサネットはデータリンク層のプロトコルだ
素人はネットワークアーキテクチャから勉強し直しなさい
--> http://ja.wikipedia.org/wiki/OSI参照モデル
0496デフォルトの名無しさん2012/08/09(木) 16:49:21.80
こういうめんどくさい人が、このスレから消えますように
0497デフォルトの名無しさん2012/08/09(木) 16:56:38.77
>>495
汎用IFで直接信号コントロールする場合もあるんだよ。
0498デフォルトの名無しさん2012/08/09(木) 16:57:14.13
ISOのOSIを知っていても実際は余り役には立たないな。
OSIは後付け理論なので実際とは合っていない。
0499デフォルトの名無しさん2012/08/09(木) 16:59:03.39
>>497
釈迦や孔子が生きていた時代の話ですね。
0500デフォルトの名無しさん2012/08/09(木) 17:05:25.45
>>499
でもたまーに今でも「手動で232c受信」をやることがあるよ!
助けて!
0501デフォルトの名無しさん2012/08/09(木) 17:20:02.63
>>498
RFC読んだら分かるが、OSI参照モデルは既に常識になってる。
プロトコル階層をまたいだり、逆転したりする場合にも、
OSI参照モデルの言葉でそれが説明されてる。

OSIで死んだのはプロトコル群。CLNSとか。
ASN.1みたいにLDAPの中で生き残ってるエンコーディング方式もある。
0502デフォルトの名無しさん2012/08/09(木) 17:22:56.80
>>500
UART買えないほど貧乏なのですか
0503デフォルトの名無しさん2012/08/09(木) 18:30:11.88
>>502
基板を作り直すお金が無いほど貧乏
0504デフォルトの名無しさん2012/08/09(木) 21:01:27.69
トークンリングてまだ動いているのかな
0505デフォルトの名無しさん2012/08/09(木) 21:41:54.78
>>503
ソフト実装で38.4Kbps出せたら神認定で良いのか?
0506デフォルトの名無しさん2012/08/09(木) 21:45:23.01
>>495
プログラムをデコード・エンコードつうのもよくわからん話だが
物理層の仕事はデータ(ビット情報)と電気信号との変換
そのデータがプログラムなのかどうかなんて関係ない
ま、>>495本人は解ってるだろうけど

>>485
とりあえずTCP/IPだけ勉強しとけば、そのへんは必要ならそのうち解る
必要ないなら解らなくても困らない
0507デフォルトの名無しさん2012/08/09(木) 21:56:25.12
>>506
馬鹿乙
0508デフォルトの名無しさん2012/08/09(木) 22:02:58.01
>>507
低脳乙
0509デフォルトの名無しさん2012/08/09(木) 22:07:17.41
>>508
はじめまして馬鹿
0510デフォルトの名無しさん2012/08/09(木) 22:10:47.48
>>509
池沼乙
0511デフォルトの名無しさん2012/08/09(木) 22:17:48.50
>>510
506=495
0512デフォルトの名無しさん2012/08/09(木) 22:21:55.39
とりあえず入門者はTCP/IPからでいいんですか?
ハードウェアの知識どころかOSの知識もほとんどないんですがそんなんでやって行けるんでしょうか
標準C/C++のコードが書けるだの能力しかありません
0513デフォルトの名無しさん2012/08/09(木) 22:23:59.78
右を向いても左を見ても
馬鹿と阿呆の絡み合い
0514デフォルトの名無しさん2012/08/09(木) 22:25:27.38
>>512
OSの知識なんて2chにレス出来るだけで十分。
0515デフォルトの名無しさん2012/08/10(金) 05:16:29.17
>>512
> そんなんでやって行けるんでしょうか

ん?
ネットワークプログラミングの仕事でもやらされようとしてるのか?
とりあえず、どのOSでやろうとしてるかぐらい書いたほうがいい。
0516デフォルトの名無しさん2012/08/10(金) 08:41:46.55
>>515
すいませんどのOSかはまだわかりません
来年からSEPGやることになったのですがなにがなんだかわからない状況です
金融系業務システム(社内ネットワーク?)と組み込みを中心にWeb開発もやってると言っていました
0517デフォルトの名無しさん2012/08/10(金) 08:57:15.31
金融系業務システムと組み込み Web 開発?

ていうか、SEPG ってうちだとネットワークの設計までしかやらないけど、
一般にはネットワークプログラミングまでやるもんなのか?
0518デフォルトの名無しさん2012/08/10(金) 08:58:34.29
来年からなら来年考えればいい
0519デフォルトの名無しさん2012/08/10(金) 10:29:26.19
テンプレ見て本買って勉強しようと思えない奴はどうしようもない。
0520デフォルトの名無しさん2012/08/10(金) 11:16:15.99
>>517
単なるWebアプリ開発だと思われますな。
おそらくネットワークプログラミングは何の関係も無い。
ドナドナ要員でしょうなぁ。ご愁傷様です。
0521デフォルトの名無しさん2012/08/10(金) 12:33:18.14
ネトウヨ記念(画像あり)
http://www.shogakukan.co.jp/magazines/detail/_sbook_2300508112
http://www.shogakukan.co.jp/var/files/storage/images/node_43/node_61/node_122/node_128/node_132/node_184/sapio12/6524796-2-jpn-JP/SAPIO.jpg
0522デフォルトの名無しさん2012/08/10(金) 18:57:53.71
>>517
たぶん、専門分野とか関係なくダボハゼのように仕事を取ってくる下請けなんだろ。
0523デフォルトの名無しさん2012/08/10(金) 20:43:19.97
売るか売られるか。それだけだもんな、人月商売はw
0524デフォルトの名無しさん2012/08/10(金) 20:57:23.32
MODBUS TCPてC#のTCPClientで送受信できますでしょうか?
ペーパレスチャートレコーダーに流れてくるデバイスバスの瞬時値を
横から分捕りたいなと。
0525デフォルトの名無しさん2012/08/10(金) 21:01:33.69
意味不明、エスパーカモーン
0526デフォルトの名無しさん2012/08/10(金) 21:30:38.10
>>524
モドバス側がTCP Serverで複数接続可能なら出来るかも
0527デフォルトの名無しさん2012/08/10(金) 21:44:14.09
クライアントがマスターでServerはSlaveだったっけ?
0528デフォルトの名無しさん2012/08/10(金) 23:00:37.84
>>527
それはMODBUSプロトコルの話かな?
TCPポートを開いて待機している方がサーバです。
0529デフォルトの名無しさん2012/08/10(金) 23:03:18.22
>>524
通信用のミドルウエアないの?
0530デフォルトの名無しさん2012/08/10(金) 23:58:56.78
フィールドバスか・・・ 今は何処のプロトコルが主流なんだろう?
0531デフォルトの名無しさん2012/08/11(土) 00:15:34.18
JKプロトコル
0532デフォルトの名無しさん2012/08/11(土) 00:59:30.86
>>530
世の中、HTTPばかりだろう
0533デフォルトの名無しさん2012/08/11(土) 10:59:35.94
次の関数 opにある 変数宣言の欠陥とセキュリティホールを指摘せよという問題がわかりません。セキュリティホールは rcv(sock, pkt->hd.sz, pkt->data); のバッファオーバーフローだと思うんですが
変数宣言のほうはint fd; の初期化がなされていないためfd代入前に case OP_READを貰うと想定外のread();をしてしまうということでしょうか?

void op(int sock, packet *pkt) {
 int fd; // declaration 1st
 int n = -1; // declaration 2nd
 switch (pkt->hd.cmd_or_stat) {
  case OP_OPEN:
   rcv(sock, pkt->hd.sz, pkt->data);
   pkt->data[pkt->hd.sz] = 0;
   fd = open(pkt->data, O_RDWR);
    if (fd > 0) pkt->hd.cmd_or_stat = SUCCESS;
     else pkt->hd.cmd_or_stat = FAIL;
   pkt->hd.sz = 0;
   break;

  case OP_READ:
   if (fd > 0) n = read(fd, pkt->data, 512);
   if (n < 0) {
    pkt->hd.cmd_or_stat = FAIL;
    pkt->hd.sz = 0;
   } else {
    pkt->hd.cmd_or_stat = SUCCESS;
    pkt->hd.sz = n;
    }
   break;
  case OP_CLOSE:
/* the following code is omitted. */
 }//end of swith()
}// endof op()
0534デフォルトの名無しさん2012/08/11(土) 12:35:30.24
ローカル変数は関数を抜けたら消えるから OP_OPEN で呼ばれたときに保存したつもりの fd は次に OP_READ で呼ばれたときには消えている
セキュリティホールは俺の予想では open するファイル名じゃね
仕様不明ゆえに確かなことは言えんけど、
例えば sock から /etc/passwd とか受信してもそのままオープンしちゃっていいんかね
まぁ実効ユーザを適切に隔離してればいいのかもしれんが
0535デフォルトの名無しさん2012/08/11(土) 13:05:08.72
rcv() って?
0536デフォルトの名無しさん2012/08/11(土) 13:11:54.76
snd, rcv は送信、受信メソッドです
0537デフォルトの名無しさん2012/08/11(土) 13:21:34.04
>>533
2つの問題以外にも突っ込みどころまんさいだな。
0538デフォルトの名無しさん2012/08/11(土) 13:30:29.77
>>537
これの8ページのか。
東大だよw
http://www.i.u-tokyo.ac.jp/edu/course/cs/pdf/2009computer.pdf
0539デフォルトの名無しさん2012/08/11(土) 13:35:43.49
op() の所だけ貼り付けられてもわからんな
0540デフォルトの名無しさん2012/08/11(土) 13:39:17.72
/* the external declarations are omitted. */
typedef struct header {
 int cmd_or_stat;
 int sz;
} header;

typedef struct packet {
 header hd;
 char data[512];
} packet;

void mainbody() {
 int sock;
 packet pkt;
 sock = getConnection();
 while (rcv(sock, sizeof(header), &pkt)) {
  op(sock, &pkt);
  snd(sock, sizeof(header) + pkt.hd.sz, &pkt);
 }
 closeConnection(sock);
}
0541デフォルトの名無しさん2012/08/11(土) 15:07:14.04
なんつーかダメプログラムの見本みたいなコードだな
バグを別にしても
0542デフォルトの名無しさん2012/08/11(土) 15:11:09.30
>>541
東大大学院入試問題なんだが・・
0543デフォルトの名無しさん2012/08/11(土) 15:17:33.10
東大()
0544デフォルトの名無しさん2012/08/11(土) 15:27:06.74
>>542
それがどうかしたのか?
誰が作ってもダメなものはダメだよ。
0545デフォルトの名無しさん2012/08/11(土) 15:32:45.75
ここまで具体的に駄目な点が指摘されていない、いや指摘できなくて単に駄目よばわりして鬱憤を晴らしている件について
■ このスレッドは過去ログ倉庫に格納されています