ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ただいまC・C++勉強中!コミュのさぁ皆さんもご一緒に

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Cゲンガー〜〜〜〜ッ!!!
トランスフォーーーーーーーーーーーームッ!!!!

って叫んでください。
これだけでトピック立てたら怒られそうなので

皆さんはネットワークプログラミングやってますか?
私は一応チャットプログラムは作れるようになったのですが
いまいち、なんかパットしません。
こんなの作れたら面白!!!とか
これは勉強になるべ!!とか
ネットワークプログラミングで作れる奴ないですかねぇ・・
もし自分がネットワークプログラミング相当できるようになったら何を作ってみたいですか?

コメント(11)

う〜ん、そうですね〜。最近社内のネット環境も厳しくなってきたので、ポート80を介して独自の暗号化通信するサーバ・クライアントプログラムがほすい。
(1)クライアント側のWINDOWSにドラッグドロップすると自動的にあらかじめ決められたサーバのディレクトリにファイルを転送するなんていかが? 別名:機密漏洩くん なんか売れそうな気がするが・・・ 
Cゲンガー〜〜〜〜ッ!!!
トランスフォーーーーーーーーーーーームッ!!!!

友達が、チャットのようなモノを作成していました。
私もチャットを作成できれば、MSNを超えるものに改良していきたいです。

といっても、まだWindowsプログラミングすら、作れない状態です。
悲しいというか寂しいというか・・・
Cゲンガー〜〜〜〜ッ!!!
トランスフォーーーーーーーーーーーームッ!!!!
という気持ちです。

元ネタがなんなのかわからないので、乱用できませんが、一応叫べといわれたので・・・。
>>1
私もそういう系統のプログラムが作りたいんです。実はねw
80で通信ってことはある意味トンネリングといってもいいのではないでしょうか・・
私はtelnetプログラムみたいなのを作りたいと思っていますが・・一緒に作ってみませんか?
役に立てるとは思いませんが・・参考にさせてもらう程度でもいいです。
>>2
Cゲンガーーーーーーーーーーーーーーー!!!!!
トランスフォームッ!!!!!!!!!!!
いや。。wwwあなたみたいな人とっても好きですw
チャットプログラム自体は簡単にできます。
いやほんとに・・
私のwindowsプログラミングはできません。むしろ今のところする気は無いです。FTPサーバーでさえ現状作ることができない状態です。printfデバッグの他gdbなどありますが
GUIで視覚的にわかりやすくデバッグできるプログラムがあれば年中に面白いチャットプログラムできると思いますw
Cゲンガー〜〜〜〜ッ!!!
トランスフォーーーーーーーーーーーームッ!!!!

おはようございます。私はゲームクリエイタを夢見てこっち
の世界に着たので、ネットワーク関係ならオンラインネット
ワークゲームを作りたいですね。DirectXでのネット
ワークプログラムは一応打てるようになったのであともうちょいです。
Cゲンガー〜〜〜〜ッ!!!
トランスフォーーーーーーーーーーーームッ!!!!

Cでグラフィックを扱うのはどうしたらいいのかまったく検討もつきません。
ゆくゆくはGUIでtrojan見たいな遠隔操作プログラム作りたいです。(トロイではありません。あくまでもトロイみたいなです)

みなさんデバッカ何を使ってますか??
私は地道にprintf派なんですが
微妙に普通のデバッガ使ったほうが早いような気がします。
何かよいデバッカしっていましたら教えてください。
gdb以外でwww
Cゲンガー〜〜〜〜ッ!!!
ゴルァーバル変数〜ッ って何!!!

通信の基本は以下のソースに凝縮されてますので・・・
実行してみちょ。BCでもVCでも動くと思う。

【共通ルーチン】
#include <winsock2.h>
int   NCONNECT=0;
int   Nssf=0;
int   Nxsf=0;
SOCKET Nss;
SOCKET Nxs;
SOCKADDR_IN sa;
SOCKADDR_IN xa;

//// PROTTYPE DEFINE ///////
int Nopen  (char *,int);
int Nreadwait(void);
int Nread  (char *,int);
int Nwrite  (char *,int);
void Nclose  (void);
////////////////////////////

int Nopen(char *addr,int port_no) {
 int len;
 WSADATA wsaData;
 LPHOSTENT lpHostEntry;
 SOCKADDR_IN sa,xa;
  if(NCONNECT) { return 1; }
  if(WSAStartup(0x0101,&wsaData)!=0) { return 2; }
  Nssf = 1;
  Nss = socket(PF_INET,SOCK_STREAM,0);
  if(Nss == INVALID_SOCKET){
    Nssf = 0;
    return (3);
  }
  lpHostEntry = gethostbyname(addr);
  if (lpHostEntry == NULL) { return 3; }
  memset(&sa,0,sizeof(SOCKADDR_IN));
  sa.sin_family = AF_INET;
  sa.sin_addr  = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
  sa.sin_port  = htons(port_no);
  memset(sa.sin_zero,0,sizeof(sa.sin_zero));
  if(connect(Nss,(LPSOCKADDR)&sa,sizeof(SOCKADDR_IN)) != SOCKET_ERROR){
    NCONNECT = 1;
    return (0);
  } else {
    closesocket(Nss);
    Nssf = 0;
    Nxsf = 1;
    Nxs = socket(PF_INET,SOCK_STREAM,0);
    if(Nxs == INVALID_SOCKET){
      Nxsf = 0;
      return (4);
    }
    memset(&xa,0,sizeof(SOCKADDR_IN));
    xa.sin_family   = AF_INET;
    xa.sin_addr.s_addr = INADDR_ANY;
    xa.sin_port    = htons(port_no);
    if(bind(Nxs,(LPSOCKADDR)&xa,sizeof(SOCKADDR_IN))!=0){
      Nclose();
      return (5);
    }
    if(listen(Nxs,5) == SOCKET_ERROR){
      Nclose();
      return (6);
    }
    len = sizeof(sa);
    Nss = accept(Nxs,(LPSOCKADDR)&sa,&len);
    if(Nss == INVALID_SOCKET){
      return (7);
    }
    Nssf   = 1;
    NCONNECT = 1;
    return (0);
  }
}
int Nreadwait(void) {
 int ret_code;
  if(!NCONNECT) { return (0); }
  if(!ioctlsocket(Nss,FIONREAD,&ret_code)) { return (ret_code); }
  return (0);
}
int Nread(char *buf, int len) {
 int ret_code;
  if (!NCONNECT) { return (-1); }
  if (len < 0)    { return (0); }
  ret_code = recv(Nss,buf,len,0);
  if(ret_code < 0){
    Nclose();
    return (-1);
  }
  return (ret_code);
}
int Nwrite(char *buf, int len) {
 int ret_code;
  if(!NCONNECT){ return (-1); }
  if(len < 0)    { return (0); }
  ret_code = send(Nss,buf,len,0);
  if(ret_code < 0){
    Nclose();
    return (-1);
  }
  return (ret_code);
}
void Nclose(void) {
  if(Nssf) { closesocket(Nss); Nssf = 0; }
  if(Nxsf) { closesocket(Nxs); Nxsf = 0; }
  WSACleanup();
  NCONNECT = 0;
}

【クライアント】
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
int Nopen  (char *,int);
int Nreadwait(void);
int Nread  (char *,int);
int Nwrite  (char *,int);
void Nclose  (void);
void main(void) {

 char buf[256],msg[256];
 int num;
  printf("接続中...\n");
  Nopen ("127.0.0.1",8888);
  printf("接続しました.\n");
  for(;;){
    if(num = Nreadwait()){
      Nread(buf,num);
      printf("受け取り番号 = %.*s\n",num,buf);
      break;
    }
  }
  if(buf[0]=='1'){ strcpy(msg,"自動車");   }
  if(buf[0]=='2'){ strcpy(msg,"オートバイ"); }
  if(buf[0]=='3'){ strcpy(msg,"徒歩");    }
  Nwrite(msg,strlen(msg));
  Nclose();
  printf("切断しました.\n");
  getch();
}

【サーバ】
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
int Nopen  (char *,int);
int Nreadwait(void);
int Nread  (char *,int);
int Nwrite  (char *,int);
void Nclose  (void);
void main(void) {
 char buf[256]={"     "};
 int num;
  printf("接続中...\n");
  Nopen("127.0.0.1",8888);
  printf("接続しました.\n");
  printf("数字を入力してください(1-3)=");
  scanf("%s",buf);
  Nwrite(buf,strlen(buf));
  for(;;){
    if(num = Nreadwait()){
      Nread(buf,num);
      buf[num]=0x00;
      printf("%s\n",buf);
      break;
    }
  }
  Nclose();
  printf("切断しました.\n");
  getch();
}
VCつかってからfedoracore4のgccに移行してその後BCに行ってみたけど・・・BCなんかめんどくさい。

って言っても・・VCないし・・
GCCでwindowsプログラミングはできないし・・できたとしても・・

なんか(´・д・`) ヤダ

VCどこいったんだ・・涙・・ないてるよ俺・・

Cゲンガーと悲しみにくれる無題・・さぁ次週はどうなるのであるのだろうか!!

さーって来週のCゲンガーは?

Cゲンガー・・風邪に苦しむ
Cゲンガー・・コンパイルできず・・
Cゲンガー・・危機一髪起死回生のデバッグ

の三本です。
じゃんけんぽん・・

ウフフフフフフフ・・・orz
>>7
 C でいんなら PellesC 使ってみないかい?

http://www.smorgasbordet.com/pellesc/

英語だが左側の download 押しゃ後はわかんだろ。
小学生じゃあるまいし分かりますよ。
ただ今、気胸で入院してますので確認出来てません。
>小学生じゃあるまいし分かりますよ。

わしゃネットに書きこむとき対象年齢を10〜100歳(両端を含む)に設定しておるからの ミ ゚ 〜゚ミ
あ、そうですか。
それは失礼しました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ただいまC・C++勉強中! 更新情報

ただいまC・C++勉強中!のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング