好的,所以我正在尝试实现客户端 - 服务器程序(套接字编程)。
我的客户端发送一个嵌入在字符串中的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数组的元素。我该怎么做呢?
答案 0 :(得分:2)
你不能这样做,因为你发送了含糊不清的信息:Pre=278262617263
可能意味着以下任何一种情况:
278262617263
27826261726
和3
2782626172
和63
278262617
和263
2782626172
,6
和3
修复此问题需要先修复发件人:确保用分隔符分隔数字,并可选择发送数组中的项目数以避免动态重新分配 - 例如,
Pre=5:27,826,26,17,263
不再含糊不清:它表示您要发送5个项目,并且这些项目是分隔的。