Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Asynchronous socket error 10053   Найти похожие ветки 

 
{bas}   (2002-09-04 16:48) [0]

Привет! Начал делать, что-то вроде простого прокси и возникает такая ошибка. Кто-то может сказать с чем она связана и как лечится. Делаю я так: есть Серверсокет и клиент сокет.
При ображение к сокету сервера я пишу так
procedure TForm1.ss_MainClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
rt : string;
begin
rt := Socket.ReceiveText;
Memo1.Lines.Add(rt);
cs_Main.Socket.SendText(rt);
end;

При ображение к сокету клиента я пишу так
procedure TForm1.cs_MainRead(Sender: TObject; Socket: TCustomWinSocket);
var
i, size : integer;
rt : string;
buffer : PByteArray;
begin
size := 10024*64;
try
GetMem(buffer, size);
size := Socket.ReceiveBuf(buffer^, size);
for i:=0 to ss_Main.Socket.ActiveConnections-1 do
begin
ss_Main.Socket.Connections[i].SendBuf(buffer^, size);
// вот здесь возникает ошибка
end;
finally
FreeMem(buffer);
end;
end;

Причем ошибка возникает не всегда(но переодично), а после нескольких вызовов cs_MainRead( т.е. onClientSocketRead). И возникает еще одна ошибка(то же не всегда, но переодично) Windows Socket error: (10054), on API "send"

В чем дело или что я делаю не правильно??
P.S. Клиентом я вляется IExplorer


 
VID ©   (2002-09-08 22:44) [1]

Что ты делаешь с помощью этого IE ? какой пакет отсылаешь ?
Думаю имеет смысл, сделать такую проверку:

for i:=0 to ss_Main.Socket.ActiveConnections-1 do
IF ss_Main.Socket.Connections[i]<>nil then
ss_Main.Socket.Connections[i].SendBuf(buffer^, size);

Проверь этот вариант.


 
{bas}   (2002-09-10 20:37) [2]

Извиняюсь, что долго не отвечал, но это не помогает
все равно выдает те же ошибки


 
{bas}   (2002-09-11 15:29) [3]

помогитееееееееееееееееее


 
cyborg ©   (2002-09-12 13:10) [4]

size := 10024*64;

??? 626,5 килобайт

исправь на 1024

Возможно буфер отсылки переполняется, вот и вылязят ошибки, хотя что за ошибка я незнаю.

FreeMem(buffer);

Думаю лучше так: FreeMem(buffer,size);


 
cyborg ©   (2002-09-12 13:12) [5]

Да, а что у тебя в буфере-то? Мусор отправляешь?


 
VID ©   (2002-09-12 19:44) [6]

TO {bas}:

Или может так:
Size := Socket.ReceivedLength;

+ мой первый совет.


 
{bas}   (2002-09-13 13:26) [7]

to VID
Сделал как написано все равно то-же самое
непойму в чем дело????


 
VID ©   (2002-09-13 20:54) [8]

1. Какая ошибка возникает после ss_Main.Socket.Connections[i].SendBuf(buffer^, size) ?

2. Когда возникают ошибки: в ситуации когда клиент - IE, или когда клиент - твоё клиентское приложение ?

3. Строку size := Socket.ReceiveBuf(buffer^, size); замени на size := Socket.ReceiveLenght;

4. Строку size := 10024*64; удали вообще

5. Если клиент <> IE, то что ты вообще отсылаешь с помощью клиента ? Кучу пакетов ?


 
{bas}   (2002-09-16 15:24) [9]

to VID
1. Asynchronous socket error 10053
2. Сейчас клиент только IE
3. заменил
4. убрал
5. см. п.2

если не в сложно посмотреть я м.б. прислать исходники??


 
REA   (2002-09-16 17:39) [10]

Родные компоненты Delphi глючные - я нашел в свое время 3-5 ошибок, некоторые из которых даже объяснимы и легко воспроизводимы. Смотреть по коду как я это обходил - лениво.


 
{bas}   (2002-09-16 18:34) [11]

to REA
скинь тогда я посмотрю


 
VID ©   (2002-09-16 19:20) [12]

to {bas}: замени TByteArray на PChar+предыдущие пункт (3) и (4);


 
cyborg ©   (2002-09-17 10:36) [13]

REA предлагаю всётаки указывать версию Дельфи, когда говорите о глюках!



Страницы: 1 вся ветка

Текущий архив: 2002.11.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
6-46035
SaperXL
2002-09-19 23:20
2002.11.14
банальный HTTP


14-46056
Bboy
2002-10-25 09:22
2002.11.14
вопрос по Windows XP


3-45793
Alex Shulg
2002-10-24 15:00
2002.11.14
LangDriver (FoxPro)


3-45704
Ренат
2002-10-23 10:54
2002.11.14
Таблицы foxpro


1-45905
stone
2002-11-05 15:18
2002.11.14
Ошибка при вызове DLL