Julius クライアント windows版

先週金曜に、Juliusクライアントの「いい加減版」をネットに上げました。卒研の参考程度と考え、わざと作り込みませんでした。こんなマニアックな世界に関心のある人は、いないだろうと思っていましたが、今週世の中には、あの「いいかげん版」で悩まれている方がいらっしゃることが分かりました。ネットに上げる時は、きちんとしなくてはいけないと反省し、急遽、完成版を作りました。

===
(Visual Studio C++ 2010を利用する場合をイメージしています)
1.新規に[空のプロジェクト]を追加する。
2.ソースファイルを追加する。
  1)[プロジェクト]-[新規項目の追加][C++ファイル(.cpp)]を選択する。
3.リンカにソケット通信用のライブラリを追加する。
  1)[プロジェクト]-[xxxのプロパティ]を選択する。
   ※xxxには、プロジェクト名が入ります。
  2)画面左側のツリーから[構成プロパティ]-[リンカ]-[コマンドライン]を選択する。
  3)追加のオプションに以下を追加する。
    ws2_32.lib

//Julius Client Windows版
#include <stdio.h>
#include <string.h>
#include <winsock2.h>

int main(void ){
  SOCKET s;    //ソケット
  //接続するサーバの情報
  struct sockaddr_in dest;
  //接続するサーバのIPアドレス

  char destination[] = “127.0.0.1”;
  char buffer[4096];char tmp[4096];char tmp1[4096];
  char recog[20][50];  int recogend=0;
  char *st1;
  char *p, *p1;

  //ソケット通信の準備
  WSADATA data;
  WSAStartup(MAKEWORD(2,0), &data);

  //接続先(サーバ)のアドレス情報を設定
  memset(&dest, 0, sizeof(dest));
  //ポート番号はサーバプログラムと共通
  dest.sin_port = htons(10500);
  dest.sin_family = AF_INET;
  dest.sin_addr.s_addr = inet_addr(destination);

  //ソケットの生成
  s = socket(PF_INET, SOCK_STREAM, 0);

  //サーバへの接続
  if(connect(s, ( struct sockaddr *) &dest, sizeof (dest))){
    printf(“%sに接続できませんでした\n” , destination);
    return -1;
  }
  printf(“%sに接続しました\n”, destination);

  for(;;){
  //サーバからデータを受信
    recogend=0;
    recv(s, buffer, 4096, 0);

 st1=strstr(buffer,”WORD=”);
 if(st1)   {
       while ((p = strstr(buffer, “WORD=”)) != NULL) {
   p += 6;
   strcpy(tmp,p);
   strcpy(tmp1,p);
   p1=strstr(tmp1,”\””);
   *p1= ‘\0’;
   strcpy(recog[recogend],tmp1);
   recogend++;
   strcpy(buffer,tmp);
  }
 }

   for( int k=0; k<recogend;k++){
     printf(“%s\n”,recog[k]);
   }
  }

  // Windows でのソケットの終了
  closesocket(s);
  WSACleanup();
  return 0;
}

===

昨日の「100万円当たるクジ」の話をもう少し考えてみたんですが。
あれは、「貧富の差は拡大するものだ」ということを示しているように思えます。50%の確率で100万円が当たるクジが1万円で売られていても、「1万円が大金」の人は怖くて買えません。一方、金持ちは躊躇なく買うでしょう。金持ちは理論通りの買い物をして得をし、貧乏な人は恐怖に左右されチャンスを逃す、ってパターンですね。
野球やサッカーでも、何点もリードしているチームは色々な手が打てる、って言うのと同じかもしれませんね。

===

どこの山だかわかりますか?

キリマンジャロです。今朝の富士山は美しかったけれど、キリマンジャロも美しいですね(クリックで拡大できます)。