Ответ в теме: Пример реализации SFML Network

SFML и C++ Уроки \ Разработка игр Форумы SFML Network Пример реализации SFML Network Ответ в теме: Пример реализации SFML Network

#4843

idris070
Участник
Сообщений:1

Зарегистрирован:
16.07.2017

Репутация:0

Я заметил проблему о задержке сервера, я ее решил таким образом

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) по общему результату он должен повторить работу клиента, но она накапливается и  он дает задержку :)

Извиняюсь пояснение наверное не очень понятное, просто хотел объяснить примерно с чем связана задержка!