Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 00:02   #1
Neexuus
 
Регистрация: 27.05.2008
Сообщений: 3
По умолчанию Ошибка "Asynchronous socket error 10053"

Помогите пожалуйста криворукому человеку.
Есть программа "Общя доска" типо пейнта по сети.
При отправлении данных при 2-ух и более клиентах подключенных к серверу происхдит ошибка "asynchronous socket error 10053", а когда один клиент подключен к серверу то все работает замечательно.

Это процедура обработки сообщения при получении сервером/клиентом
Код:
procedure TFmain.SSServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
i:integer;
mes:string;

mesrecresiv:tmesrec;
begin

Socket.ReceiveBuf(mesrecresiv,Socket.ReceiveLength);
with mesrecresiv do begin
drow(startxyrec,nowxyrec,impaint,instrrec,colorrec,penmoderec,
                                                        penstylerec,brushstrec);
end;


For i := 0 to SSServer.Socket.ActiveConnections - 1 do
        if SSServer.Socket.Connections[i].socketHandle <> Socket.SocketHandle then
       SSServer.Socket.Connections[i].SendBuf(mesrecresiv,sizeof(mesrecresiv)) ;
end;


procedure TFmain.csClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
mes:string;
mesrecresiv:tmesrec;
begin

Socket.ReceiveBuf(mesrecresiv,Socket.ReceiveLength);
with mesrecresiv do begin
drow(startxyrec,nowxyrec,impaint,instrrec,colorrec,penmoderec,
                                                        penstylerec,brushstrec);
end;
end;
Код процедур отправки данных с сервера/клиента
Код:
Procedure TFmain.sendtoserver();
var i:integer;
begin

If  serverconected  then begin
    csclient.Socket.SendBuf(mesrec,sizeof(mesrec));
end;

if clientconnected then begin
  for i:=0 to SSServer.Socket.ActiveConnections-1 do begin
  SSServer.Socket.Connections[i].SendBuf(mesrec,sizeof(mesrec))
   end;
 end;
end;
Это структура записи которая отправляется
Код:
Tmesrec= record
    startxyrec:tpoint;
    nowxyrec:tpoint;
    brushstrec:TBrushStyle;
    penstylerec:TPenStyle;
    colorrec:TColor;
    instrrec:Tinstr;
    penmoderec:TPenMode;
    end;
Neexuus вне форума Ответить с цитированием
Старый 17.04.2009, 00:56   #2
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

А сервер у вас многопоточный? Т.е. расчитан на подключение нескольких клиентов и обработку данных от них?
Мне кажется что нет и как следствие подключение более одного клиента вызывает "кашу" на сокете и ос сбрасывает соединение.
oleg kutkov вне форума Ответить с цитированием
Старый 17.04.2009, 01:01   #3
Neexuus
 
Регистрация: 27.05.2008
Сообщений: 3
По умолчанию

Дело в том что такая ошибка возникает когда используются только определенные инструменты, те это какрандаш, стерка, или кисть когда происходит отправление сообщения на каждое движение мыши при зажатой клавиши мыши даже когда происходит рисование только на одном из приложений. А когда присходит рисование фигур линия, квадрт, круг и прочее сообщение отправляется при отпускании клавиши мыши то все работает нормальна при любом количестве клиентв.

Последний раз редактировалось Neexuus; 17.04.2009 в 01:12.
Neexuus вне форума Ответить с цитированием
Старый 23.04.2009, 20:43   #4
Neexuus
 
Регистрация: 27.05.2008
Сообщений: 3
По умолчанию

Все, уже разобрался была ошибка выделения памяти при приеме/передачи через sendbuf
Neexuus вне форума Ответить с цитированием
Старый 30.11.2010, 14:02   #5
mavrodi
Новичок
Джуниор
 
Регистрация: 02.06.2010
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Neexuus Посмотреть сообщение
Все, уже разобрался была ошибка выделения памяти при приеме/передачи через sendbuf
эххх, подксказал бы в чем было дело)))
mavrodi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка сетевого приложения Asynchronous socket error 10060 Glorius Свободное общение 7 22.03.2009 12:19
Как устранить ошибку "socket error #10060" Evgen1976 Работа с сетью в Delphi 11 20.03.2009 15:21
asynchronous socket error 10060 delphin100 Работа с сетью в Delphi 6 07.05.2008 07:07
ОШИБКА:"error BGI graphics not ..." Panterka Помощь студентам 7 12.12.2007 17:06