Созданные ответы форума
-
АвторСообщения
-
Я заметил проблему о задержке сервера, я ее решил таким образом
if(mode == ‘s’){
socket.receive(packet); //Команда которая ожидает данных в виде пакета от клиентской части
if(packet >> x >> y){ //вытаскиваем значение из пакета в переменную x и у (действие уже происходит)
cout << x << “:” << y<< endl; //..и если все прошло успешно то выводим её координаты
}
}if(mode == ‘r’){
if (Keyboard::isKeyPressed(Keyboard::Right)) { //первая координата Х отрицательна =>идём влево
x ++;
}
if (Keyboard::isKeyPressed(Keyboard::Left)) { //первая координата Х отрицательна =>идём влево
x –;
}if (Keyboard::isKeyPressed(Keyboard::Down)) { //первая координата Х отрицательна =>идём влево
y ++;
}
if (Keyboard::isKeyPressed(Keyboard::Up)) { //первая координата Х отрицательна =>идём влево
y –;
}packet << x << y; //Пакуем значения координат в Пакет
socket.send(packet); //Отправка данных
packet.clear(); //Чистим пакет
}
window.clear();
shape.setPosition(x, y); //выставляем шар на координаты
window.draw(shape); //отрисовываем шар
window.display();
if(mode == ‘r’)
sleep(sf::milliseconds(10));//Задержка
}//ENDТо есть я заметил сервер все время начал позже показывать действия, как я понял сервер не успевал обрабатывать информацию, и начал задерживаться ( он просто не успевает так скажем за клиентом)
Поэтому я сделал так, у клиента будет задержка sleep(10) а сервер не будет принимать задежку он постоянно будет слушать!
То есть когда сервер с параметром sleep(10) по общему результату он должен повторить работу клиента, но она накапливается и он дает задержку
Извиняюсь пояснение наверное не очень понятное, просто хотел объяснить примерно с чем связана задержка!
-
АвторСообщения