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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
レムレス

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

#1

投稿記事 by レムレス » 14年前

Windows環境でWinsockを使用してネットワークプログラミングを最近勉強してます。
現在作成したのが
・チャット
・スレッド式掲示板のスレッドをリアルタイムで監視し新しいスレッドが立てられたら音を鳴らして教えてくれるもの
・パケットキャプチャ
・FTP接続(ダウンロード、アップロード、フォルダ作成など)
このくらいです。
なにか他に面白いものを作成したいのですが、ネタがありません。

なにか面白いソフト(ツール)などありませんか?

使用コンパイラはVC++2010です。
WinAPIもたまに使用しますがGUIソフトは作りません。
いつもCUIだけで楽しんでます。

アバター
bitter_fox
記事: 607
登録日時: 14年前
住所: 大阪府

Re: ネットワークプログラミング

#2

投稿記事 by bitter_fox » 14年前

レムレス さんが書きました: なにか他に面白いものを作成したいのですが、ネタがありません。
なにか面白いソフト(ツール)などありませんか?
どの程度の難易度が適切なのかわかりませんが、Pingプログラムなどどうでしょうか??

http://ruffnex.oc.to/kenji/xrea/text_ping.txt

簡単すぎでしょうか??

アバター
へろりくしょん
記事: 92
登録日時: 14年前
住所: 福岡

Re: ネットワークプログラミング

#3

投稿記事 by へろりくしょん » 14年前

そこまで作れるんでしたら、次はやっぱりリモートツールじゃないでしょうか。

私も以前作った事がありますが、たちの悪いトロイになってしまいました。
他の人が作ったのを見ると、結構便利だったりするんですよね。

レムレス

Re: ネットワークプログラミング

#4

投稿記事 by レムレス » 14年前

bitter_fox さんが書きました: どの程度の難易度が適切なのかわかりませんが、Pingプログラムなどどうでしょうか??
すみません>_<
既に作成済みでした。
書き忘れてしまいました。

レムレス

Re: ネットワークプログラミング

#5

投稿記事 by レムレス » 14年前

へろり さんが書きました:そこまで作れるんでしたら、次はやっぱりリモートツールじゃないでしょうか。

私も以前作った事がありますが、たちの悪いトロイになってしまいました。
他の人が作ったのを見ると、結構便利だったりするんですよね。
リモートツールですか。
面白そうですね。
たぶん一般的には作り方とか載ってないような気がするのですが
どういう仕組みなのでしょうか?
一応ざっと考えてみたのが
1.サーバを相手に送る
2.自分のクライアントからコマンドを送る。
3.サーバが送られてきたコマンドを処理する。
という処理なのですが、コマンドはsystem関数で処理することにして、
それだとリモートで操作できる範囲が限られてくると思います。
マウスコントロールとかもしたいですよね?
そのあたりどうすればいいのでしょうか?

アバター
shiro4ao
記事: 224
登録日時: 14年前
住所: 広島

Re: ネットワークプログラミング

#6

投稿記事 by shiro4ao » 14年前

CUIリモートツールであれば、
1.サーバーが接続を待つ
2.telnetクライアントで接続
3.接続がきたらサーバーはcmd.exeをCreateProcess()する
4.このとき標準出入力をCreatePipe()でソケットに繋ぐ
 これでクライアントからのデータがcmd.exeの標準入力
 にはいる
5.さらにcmd.exeの標準出力があればクライアントへ送信
 するスレッドを走らす。
6.これでクライアントからのコマンドを受け、その結果を
 クライアントに送るプログラムが出来るはずです。

もうひとつの方法として、標準出入力の引数をソケットに
してCreateProcess()するという方法でもできると思います。



GUIリモートツールであれば、
RFBプロトコル(実装例:VNC)を使うという方法がありま
すが,サンプルとして作るのは大変そうなので、画像を一定
時間ごとにキャプチャしてクライアントに送るプログラム
などはいかかでしょうか?

マウスコントロールについては位置はWM_MOUSEMOVEを
調べる。移動については mouse_event()をもいちること
で可能かと思います。(SendInput()のほうがおすすめのよ
うですが)

アバター
へろりくしょん
記事: 92
登録日時: 14年前
住所: 福岡

Re: ネットワークプログラミング

#7

投稿記事 by へろりくしょん » 14年前

レムレス さんが書きました:一応ざっと考えてみたのが
1.サーバを相手に送る
2.自分のクライアントからコマンドを送る。
3.サーバが送られてきたコマンドを処理する。
という処理なのですが、コマンドはsystem関数で処理することにして、
それだとリモートで操作できる範囲が限られてくると思います。
マウスコントロールとかもしたいですよね?
そのあたりどうすればいいのでしょうか?
マウスコントロールは、クライアント側でマウスメッセージをフックするなり、キャプチャーするなりして、捕まえたメッセージをサーバ側に送りつける事で実装できそうです。
ただ、これって、サーバ側の画面をクライアント側に送り続けなければ使い物になりそうにないですね。 それも1秒間に数回程度は更新してほしいものです。
1680x1050 の 24bit カラーでざっと5MBちょい(非圧縮BMP)です。 ちょっと厳しいですね。

閉鎖

“C言語何でも質問掲示板” へ戻る