Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
1-45846
AFrolov
2002-11-05 10:35
2002.11.14
Как определить дату предшедствующую указанной


1-45983
aQQQa
2002-11-03 21:52
2002.11.14
Помогите! Очень срочно!


4-46213
Alexander
2002-10-04 11:16
2002.11.14
Хочу выбрать компьютер, но приведённый код выдаёт пустую строку!


14-46109
Anatoly Podgoretsky
2002-10-26 09:57
2002.11.14
Именинники 26 октября


3-45683
Zloy
2002-10-26 16:02
2002.11.14
А как в таблицу парадокс, в поле график запихнуть jpeg.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский