0

私は c プログラミング言語で TCP クライアント アプリケーションを作成しています。プロジェクトはクライアント サーバー通信です。私はサーバーと正常に通信しており、サーバーは文字列のようにコマンドを送信しており、その文字列をチャートの配列に保存して実行していますが、問題は、サーバーが複数のコマンドを送信している場合があることです (最大3 コマンド) [100#100#100#] 100 はコマンド、# は記号なので、最初のコマンドがどこで終了するかがわかります。問題は、すべてのコマンドを別の char 配列に分割する方法です。どんなアイデアでも

PSなぜこれが起こっているのかという問題は、クライアントがcで書かれており、サーバーがJavaプログラミング言語で書かれており、クライアントがサーバーからのACKを待つべきではないためです。

4

3 に答える 3

0

この実装を使用します。

#include <stdio.h>
#include <string.h>

int main ()
{
    char string[] ="100#100#100";
    char * commands;

    commands= strtok (string,"#");
    printf("%s\n", commands);   // <=== this is the first token 

    while (commands!= NULL) {
      commands= strtok (NULL,"#"); // <=== this will give further tokens 
                                   // Note - you need to call strtok again 
                                   // Note2 - you need to call with parameter NULL 
                                   //         for further tokens  
      printf ("%s\n",commands);
    }


   return 0;
}
于 2013-08-22T18:35:30.207 に答える
0
#include <stdio.h>
#include <string.h>

int main ()
{
  char string[] ="100#100#100";
  char * commands;

  commands= strtok (str,"#");
  while (commands!= NULL)
  {
    printf ("%s\n",commands);
    commands = strtok(NULL, "#");

  }
  return 0;
}
于 2013-08-22T18:24:47.980 に答える