хорошо, поэтому я пытаюсь быть более эффективным в своем программировании, пытаясь передать несколько строк в виде одного массива [100].Я могу передать всю эту информацию от моего клиента совершенно нормально, но теперь я пытаюсь использовать substr или strch, чтобы удалить значения, которые я передал, используя массив char на стороне сервера.
сервер будет выглядеть так с другойконец, с данными, переданными от клиента, сохраненными в памяти под vel_rec:
recv(sock, vel_rec, 100, 0);
Программа настроена на отправку некоторых основных числовых данных на многопоточный сервер для выполнения вычислений и возврата результатов.Я, скорее всего, буду использовать функцию atoi, чтобы получить целочисленные значения из строк, а затем вернуть результат обратно клиенту.Этот возвращенный результат снова будет символьным массивом.
client:
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;
}
хорошо, так что все нормально, я уверен, что существуют бесконечно лучшие решения для конкатенации нулевых символовчто я даже не уверен, что сработает, просто оставил их там, чтобы вы могли выбрать, если вы можете использовать их на стороне сервера вещей.Я пытался использовать их, чтобы разорвать мои исходные струны, но безуспешно.Я просто хочу, чтобы сервер получил этот массив символов и скопировал его части в строки.Я предполагаю, что это возможно, но если бы я не мог всегда отправлять несколько массивов символов, мне просто кажется, что они будут перепутаны на сервере, если не будут должным образом помечены и упорядочены по мере поступления данных. Один в один выходитКажется, очень чистым и предпочтительным, если честно.Использование строк здесь может даже не понадобиться, я просто подумал, что это будет лучше, чем использование значений 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
Спасибо большое
Шон