![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
cooler |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот игра есть сетевая, суть такая
2 танка едут навстречу друг другу с разной скоростью, кто первый попадёт в противника - победил или столкнутся. Примитивная Но не синхронизируются сервер и клиент. Выдаёт asynchronys socket error Никак не могу поймать ошибку ![]() Может что с компонентами напутал? Сообщение отредактировано: cooler - 25.05.2009 21:21 Прикрепленные файлы ![]() |
![]() ![]() |
Unconnected |
![]()
Сообщение
#2
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Ну так там в диалоге подключения к серверу на обработчике кнопки "принять" вообще ничего не висит... ошибка, которая у тебя вываливается, просто означает что не удалось подключиться, а всё потому, что в свойствах TServerSocket ты не ввёл порт, на котором он будет слушать, а в свойствах TClientSocket тоже не ввёл порт и к тому же адрес, по которому располагается сервер.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что-то я совсем запутался, теперь не могу привязать к той кнопке процедуры с параметрами, всё не то
Что там нужно прописать? Помогите, пожалуйста подключить. И в свойствах не знаю что прописывать, т.к смотрел в похожи программах всё также стоит и работает, нужно ли? |
Unconnected |
![]()
Сообщение
#4
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Ну, если будешь удалённо подключаться, т.е. по IP-адресу, то для клиентского сокета будет так:
clientsocket1.port:=1001; При подключении серверная часть должна быть запущена, и в её свойствах должен быть установлен порт, на который будет подключаться клиент, в данном случае 1001. Ещё не рекомендуется ставить значение порта меньше 1000, т.к. они якобы используются системой.. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Т.е также open сервер и порт прописываем сначала, а тот ip-адрес можно брать из диалогового окна, которое у меня было?
|
Unconnected |
![]()
Сообщение
#6
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Даже нужно. И ещё советую почитать про асинхронные сокеты в дельфи.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Попробую соединиться
![]() |
cooler |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Опять не работает
Выдает ещё ошибку с памятью почему-то и ту же асинхронную Вот на кнопку клиент: Код procedure TForm1.N3Click(Sender: TObject); begin if Form2.ShowModal=mrOk then begin initgame; state:=1; client.port:=1001; Client.Host:=Form2.Edit1.Text; Client.Open; StatusBar1.SimpleText:='Связь установлена'; btnClient.Enabled:=False; btnServer.Enabled:=False; lblIsServer.Caption:='Клиент'; lblRightT.Enabled:=True; end; end; Вот на кнопку принять в клиенте : Код ModalResult:=mrOK; А вот на сервер кнопку: Код initgame; state:=0; server.port:=1001; Server.Open; if server.Active then StatusBar1.SimpleText:='Ожидание'; btnClient.Enabled:=False; btnServer.Enabled:=False; lblIsServer.Caption:='Сервер'; lblLeftT.Enabled:=True; end; Сообщение отредактировано: cooler - 28.05.2009 9:30 |
Unconnected |
![]()
Сообщение
#9
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Client.Host - почему не client.address? Ты вообще как тестируешь - по интернету, по локальной сети или на своей машине?
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#10
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да client.address тоже пробовал
По идее на одной машине должно работать, если даже айпишник не вводить |
Unconnected |
![]()
Сообщение
#11
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Это по какой-такой идее?))
Вводить надо, сокет тебе не телепат, чтобы догадываться, куда подключаться) Чтобы подключиться к своей машине, можешь свойству address клиентского сокета присвоить 127.0.0.1 или свойству host того же сокета значение localhost или имя твоего компьютера. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата свойству address клиентского сокета присвоить 127.0.0.1 Я это имел ввиду ![]() Оно по умолчанию у меня такое, но всё равно даже на одном компьютере не связывается |
Unconnected |
![]()
Сообщение
#13
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
А брандмауэр Windows выключен? Или может ещё какой установлен?
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#14
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
выключен, таскал на другие компы и по сети и на одном компе не работает
![]() |
Unconnected |
![]()
Сообщение
#15
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Прикрепи сюда проект.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#16
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот
Прикрепленные файлы ![]() |
Unconnected |
![]()
Сообщение
#17
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Действительно была ошибка, acsess violation, насколько я понял, происходила после обращения к свойствам компонентов client и server (ты их переименовал). Попробовал удалить их с формы и добавить заново, переписал код под новые названия - заработало, даже поиграть удалось
![]() Вот что получилось: -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#18
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
У меня всё-равно не работает. Точнее клиент-сервер не синхронизируются
А ты как запускал, в какой последовательности? |
Unconnected |
![]()
Сообщение
#19
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Открывал 3(три) копии программы, на одной запускал сервер, на двух других - клиенты...
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
cooler |
![]()
Сообщение
#20
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
И ездят и стреляют синхронно? Странно
|
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 9:35 |