如何将long long int的数字放入long long int数组中

时间:2013-09-30 02:05:16

标签: c arrays sockets gcc int

好的,所以我正在尝试实现客户端 - 服务器程序(套接字编程)。

我的客户端发送一个嵌入在字符串中的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数组的元素。我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

你不能这样做,因为你发送了含糊不清的信息:Pre=278262617263可能意味着以下任何一种情况:

  • 一个数字278262617263
  • 的数组
  • 包含两个数字278262617263
  • 的数组
  • 包含两个数字278262617263
  • 的数组
  • 包含两个数字278262617263
  • 的数组
  • ......更多相同
  • 包含三个数字278262617263
  • 的数组
  • ......我觉得你有这个想法

修复此问题需要先修复发件人:确保用分隔符分隔数字,并可选择发送数组中的项目数以避免动态重新分配 - 例如,

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

不再含糊不清:它表示您要发送5个项目,并且这些项目是分隔的。