0

わかりましたので、クライアント - サーバー プログラム (ソケット プログラミング) を実装しようとしています。

私のクライアントは、次のような文字列に埋め込まれた long long int を送信します。

char copy[10];
sprintf(send_data,"%s","Pre=");

for(i=0;i<7;i++){
    sprintf(copy,"%lld",premaster[i]);
    strcat(send_data,copy);
}

printf("\nSending CLIENT_KEY_EXCHANGE message\n");
send(sock,send_data,strlen(send_data), 0);

SO send_data は次のようになりますPre=278262617263

サーバー側では、次のようになります。

long long int preMaster;
long long int pre[100]={0};

numBytes = recv(clntSock,inMsg,1024,0); 
inMsg[numBytes] = '\0';

sscanf(inMsg, "Pre=%lld", &preMaster);

この preMaster を pre 配列の要素に変換したいと思います。どうすればそれを行うことができますか?

4

1 に答える 1

2

あいまいな情報を送信しているため、これを行うことはできません:Pre=278262617263次のいずれかを意味する可能性があります:

  • 1 つの数値の配列278262617263
  • 2 つの数値の配列278262617263
  • 2 つの数値の配列278262617263
  • 2 つの数値の配列278262617263
  • ...さらに同じ
  • 3 つの数値の配列27826261726および3
  • ... 私はあなたがアイデアを得たと思います

これを修正するには、最初に送信者を修正する必要があります。数字を区切り文字で区切り、オプションで配列内のアイテムの数を送信して、動的な再割り当てを回避してください。たとえば、

Pre=5:27,826,26,17,263

あいまいではなくなりました: 5 つのアイテムを送信していることが示され、これらのアイテムは区切られています。

于 2013-09-30T02:14:12.990 に答える