PDA

Просмотр полной версии : ЛЮДИ ПОМОГИТЕ В Delphi


Bill
19.03.2006, 00:05
:( Такая проблема, пытаюсь сам сделать на Delphi свой сервер по принцыву тоя на основе Socket-ов и функией SendText чтобы посылать команы серверу...
Но вот проблема вылитает ошибка соединения и ошибка передачи или приёма команды. Чедалеть подскажите...

PEPSICOLA
19.03.2006, 00:46
Постарайся подробнее объяснить... Ip было прописано или надо вводить в поле? Вообще кинь код.

И я не понял, он не соединяется или не отправляет команды? Или ты не знаешь что именно?

Вообщем у меня такая же трабла была... Я где то нашел хороший FAQ на тему создания соединений в delphi... Щас если сайт вспомню напишу. Там ещё примеров куча бы ла

Morph
19.03.2006, 10:18
Дай сорс посомтрю помогу чем нить думаю.
Тока не понял ты посылаешь команды серверы чтоли и он при определнной команде должен выполнять что нибудь да?

gadjet
19.03.2006, 11:05
Через какой порт работаешь?

Bill
19.03.2006, 12:52
Пишу отельно сервак, порт оптономный выбрал сам 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'.
---

Вот такая загогулина...

KEZ
19.03.2006, 13:03
Asinchronous Socket Error 10053.


Вообще 10053 - по WINERROR.H - WSAECONNABORTED (WSABASEERR+53)
Что означает, как я понял, что соединение было сброшено ещё до установки, например неправильно отреагировал сервер на фрейм SYN, или чтото подобное.
Скорее всего - у тебя это происходит из-за того что супер классные делфи-кодеры из компании Borland в своих классах Socket намутили чтото с асинхронными неблокирующими сокетами, возможно не использована select(). Используй обычный интерфейс WinSocket и у тебя все будет нормально (ну насчет в делфи незнаю, но по нормальному все должно быть ок))

А вообще, мастерите на делфи! У вас тоже такие же офигенные программы будут)
хаха

Bill
19.03.2006, 13:33
Ну вот простейший пример:

...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:='...';

и что тут нетак???

gadjet
19.03.2006, 14:58
Может у тебя фаер порт закрывает?

Bill
19.03.2006, 15:28
Нет я пробовал его просто намертво отрубать... и всеравно нефига, что телать незна.

НО ФАКТ НЕЧЕГО НЕРАБОТАЕТ!!

gadjet
19.03.2006, 16:42
Запусти обе проги (клиент и сервер) на своем компе и укажи Ip 127.0.0.1 и проверь. Если будет та же ошибка, значит у тебя че-то с кодом

Morph
19.03.2006, 16:55
Да бывают такие траблы в дельфи сам лично сталкивался и не раз.
Как то помню чо от мутил и этой фени больше не было, но щас убей не помню.

Bill
19.03.2006, 18:48
Спасибо попробуем...

Bill
19.03.2006, 19:15
[B]Сделал как посоветовали, и получил результат...
как я уже писал рание только Socket Error 10061...

Есть мысли или идеи...

уменя пока нет....

вот нашел статью про подобный случай, перечитайте и сажите могу ли я этим воспользоватся???? Вот статья : http://www.forum.antichat.ru/thread15440.html

KEZ
19.03.2006, 23:01
Нелюблю когда мои посты нехрена не замечают... Зачем вообще что-то на форуме писать?
Описал уже миллион раз из-за чего это и что надо делать... нет... все прошло незамеченым

Raider
20.03.2006, 23:14
Скорее всего - у тебя это происходит из-за того что супер классные делфи-кодеры из компании Borland в своих классах Socket намутили чтото с асинхронными неблокирующими сокетами, возможно не использована select(). Используй обычный интерфейс WinSocket и у тебя все будет нормально (ну насчет в делфи незнаю, но по нормальному все должно быть ок))

Delphi кодеры тут не причём, просто Bill наверно перевёл свой сокет в блокирующий режим ...

2 Bill: Убедись что ClientType у TClientSocket'а == ctNonBlocking.
-

вот нашел статью про подобный случай, перечитайте и сажите могу ли я этим воспользоватся???? Вот статья : http://www.forum.antichat.ru/thread15440.html

Там есть ссылка на прогу которая работает как раз с этими сокетами, проверь будет ли она рабоать у тебя, еслс нет, то хз в чём трабла ...

KEZ
21.03.2006, 00:29
Да, намутили, что называется там разработчики... Неужели не проще взять ОБЫЧНЫЕ Windows-сокеты ?
Чем ставить у каких-то псевдо-надуманых объектов типа

TClientSocket

какие-то надуманые левые свойства, когда в реальности этим и не пахнет?

Raider
21.03.2006, 04:39
Delphi кодеры тут не причём, просто Bill наверно перевёл свой сокет в блокирующий режим ...

2 Bill: Убедись что ClientType у TClientSocket'а == ctNonBlocking.

Прошу прощенья тут я был не прав.
-
Да, намутили, что называется там разработчики... Неужели не проще взять ОБЫЧНЫЕ Windows-сокеты ?
Чем ставить у каких-то псевдо-надуманых объектов типа

какие-то надуманые левые свойства, когда в реальности этим и не пахнет?
Как видишь намутил здесь пока только Я ) Поэтому вопрос по поводу левого св-ва сам собой отпадает, а вообще согласен что обычные Windows сокеты использовать проще.