好吧,所以我试图通过将多个字符串作为一个字符数组[100]传递给我的编程更高效。我可以从我的客户端传递所有这些信息,但我现在试图使用substr或strch删除我在服务器端使用char数组传递的值。网络和讯息
服务器看起来像这样在另一端,与从客户端传递数据下vel_rec被存储到存储器中:
recv(sock, vel_rec, 100, 0);
该程序被设置成一些基本的数字数据发送到螺纹服务器运行计算并返回结果。我很可能会使用atoi函数将整数值从字符串中取出,然后将结果返回给客户端。这个返回的结果将是一个字符数组。
客户端:
char vel_snd[100], vel_rec[100], char buffer[100];
memset(buffer, 0, 99);
memset(vel_snd, 0, 99);
memset(vel_rec, 0, 99);
recv(sock, buffer, 100, 0);
//are we connected?
cout << "connection status = " << buffer << endl;
string v0, a, time, space = "\n", stop; stop = 'g';
while (stop != "x")
{
cout<<":::Press 'x' then 'enter' at any time to quit:::"<< endl;
cout<<"enter data? "<< endl;
cin>>v0;
stop = v0;
cout<<"some more data? "<<endl;
cin>>a;
stop = a;
cout<<"even more data? "<<endl;
cin>>time;
stop = time;
v0 += space + a + space + time;
strcpy(vel_snd, v0.c_str());
send(sock,vel_snd,strlen(vel_snd), 0);
cout<<"Calculating...\n";
recv(sock, vel_rec, 100, 0);
cout<<"\nThe data in "<<time<<" seconds will be "<<vel_rec<<endl;
}
好了,所以这是所有罚款和花花公子,我肯定存在,而我什至不知道将工作的空字符的级联无限更好的解决方案,只是离开了他们那里你可以选择是否可以在服务器端使用它们。我试图用它们打破我原来的字符串,但没有成功。我只想让服务器接收这个char数组并将其复制到字符串中。我认为这是可能的,但如果不是,我总是可以发送多个字符数组,但在我看来,如果数据进来时没有正确标记和组织,他们会在服务器上混乱。 ,对我来说似乎很干净,诚实坦率地说。在这里甚至可能不需要使用字符串,我只是认为它会比使用int值和转换更好,当我可以将它们作为字符串传递给开头时。无论哪种方式,我仍然需要实现一些方法来分解从客户端发送到服务器的值,并且substr不想使用char数组。
我对任何网络也都非常陌生,这是我从我看过的一些教程中的第一次尝试。我在这个主题上做了30分钟的演讲,除了“有效”之外,没有进一步的解释。话虽如此,请您在回复中保持建设性。希望我能学到更多的东西,因为我计划在我正在开发的网络游戏中实现类似的东西。哦,之前我忘了这是使用wsock32.lib。
回顾:
[client]
char array1[100] = string 1 + string 2 + string 3
server<--char array1
char array2<--- server
print
[server]
char array1<---client string 1 + string 2 + string 3
int A = string 1
int B = string 2
int C = string 3
<some math...>
<char array 2 = itoa A B C>
client <--- char array2
多谢
肖恩
我没有在那里看到一个问题... –
以及我只是想知道如何从char数组中取出字符串 –
为什么你不单独传递字符串?结合他们获得你的是什么?你正试图解决效率问题?确保a)执行时间确实存在问题,并且b)您正在解决正确的效率瓶颈。 – Amy