Такая проблема, пытаюсь сам сделать на Delphi свой сервер по принцыву тоя на основе Socket-ов и функией SendText чтобы посылать команы серверу... Но вот проблема вылитает ошибка соединения и ошибка передачи или приёма команды. Чедалеть подскажите...
Постарайся подробнее объяснить... Ip было прописано или надо вводить в поле? Вообще кинь код. И я не понял, он не соединяется или не отправляет команды? Или ты не знаешь что именно? Вообщем у меня такая же трабла была... Я где то нашел хороший FAQ на тему создания соединений в delphi... Щас если сайт вспомню напишу. Там ещё примеров куча бы ла
Дай сорс посомтрю помогу чем нить думаю. Тока не понял ты посылаешь команды серверы чтоли и он при определнной команде должен выполнять что нибудь да?
Пишу отельно сервак, порт оптономный выбрал сам port=2581 и после запускю сервер, он работает, на соединение отвечает и дает произвести connect, но как только отправляю ему какую либо команду вот что получается: --- От сервера : Asinchronous Socket Error 10053. --- -- От клиента: Windows Soxket Error :Запрос на отправку или получение данных ( When sending on a dategrem socket using a sendto call) no addres wes suppied (10057), no API 'recv'. --- Вот такая загогулина...
Вообще 10053 - по WINERROR.H - WSAECONNABORTED (WSABASEERR+53) Что означает, как я понял, что соединение было сброшено ещё до установки, например неправильно отреагировал сервер на фрейм SYN, или чтото подобное. Скорее всего - у тебя это происходит из-за того что супер классные делфи-кодеры из компании Borland в своих классах Socket намутили чтото с асинхронными неблокирующими сокетами, возможно не использована select(). Используй обычный интерфейс WinSocket и у тебя все будет нормально (ну насчет в делфи незнаю, но по нормальному все должно быть ок)) А вообще, мастерите на делфи! У вас тоже такие же офигенные программы будут) хаха
Ну вот простейший пример: ...Form1.Create... begin ServerSocket1.port:=...; ServerSocket1.Action:=true; end; ...ServerSocket1.ClientRead... begin if serverSocket1.Socket.ReciveText='...' then ...; Что в простейшем сервере нетак????? И слиент к серваку тоже простейший: ...form1.Button1.click... begin ClientSocket1.host... clientSocket1.addres... ClientSocket1.Action:=treu; end; ...form1.Button2.click... ClisentSocket1.Socket.SandText:='...'; и что тут нетак???
Нет я пробовал его просто намертво отрубать... и всеравно нефига, что телать незна. НО ФАКТ НЕЧЕГО НЕРАБОТАЕТ!!
Запусти обе проги (клиент и сервер) на своем компе и укажи Ip 127.0.0.1 и проверь. Если будет та же ошибка, значит у тебя че-то с кодом
Да бывают такие траблы в дельфи сам лично сталкивался и не раз. Как то помню чо от мутил и этой фени больше не было, но щас убей не помню.
Сделал как посоветовали, и получил результат... как я уже писал рание только Socket Error 10061... Есть мысли или идеи... уменя пока нет.... вот нашел статью про подобный случай, перечитайте и сажите могу ли я этим воспользоватся???? Вот статья : http://www.forum.antichat.ru/thread15440.html
Нелюблю когда мои посты нехрена не замечают... Зачем вообще что-то на форуме писать? Описал уже миллион раз из-за чего это и что надо делать... нет... все прошло незамеченым
Delphi кодеры тут не причём, просто Bill наверно перевёл свой сокет в блокирующий режим ... 2 Bill: Убедись что ClientType у TClientSocket'а == ctNonBlocking. - Там есть ссылка на прогу которая работает как раз с этими сокетами, проверь будет ли она рабоать у тебя, еслс нет, то хз в чём трабла ...
Да, намутили, что называется там разработчики... Неужели не проще взять ОБЫЧНЫЕ Windows-сокеты ? Чем ставить у каких-то псевдо-надуманых объектов типа какие-то надуманые левые свойства, когда в реальности этим и не пахнет?
Прошу прощенья тут я был не прав. - Как видишь намутил здесь пока только Я ) Поэтому вопрос по поводу левого св-ва сам собой отпадает, а вообще согласен что обычные Windows сокеты использовать проще.