# Native Code > برنامه نویسی در Delphi > توسعه نرم افزارهای تحت شبکه >  خطای سوکت  10038 و راه حل آن

## seyed_farid

با سلام
من از دستور زیر استفاده کردم و کلاینتهای متصل شده به سرور را در یک لیست باکس ثبت میکنم
 procedure TForm1.ServerConnect(Client: TTCPConnection);
begin
   ClientCounter := 1;
    Client.Data := TClientData.Create;

    with TClientData(Client.Data) do
    begin
     Name := Client.PeerIP;
     if ListBox1.Items.IndexOf(Name) >= 0
      then
       begin
         Name := Client.PeerIP + '_'+ InttoStr(ClientCounter);
         while ListBox1.Items.IndexOf(Name) >= 0 do
          begin
           Inc(ClientCounter);
           Name := Client.PeerIP + '_'+ InttoStr(ClientCounter);
          end;
       end;

     ListBox1.Items.AddObject(Name, Client);


و بعد برای ارسال متن به آنها از دستور زیر استفاده کردم.

          TTCPConnection(ListBox1.Items.Objects[i]).WriteLn(s ,Delim)

بعد از چند ساعت که برای ارسال متن به همه کلاینتها اقدام میکنم پیام خطای زیر  برای بعضیهاش صادر میشه.

Error #10038 : An operation was attempt on something that is not a Socket.
 میشه راهنمایی کنید؟  :تشویق:  :تشویق:  :تشویق: 

مثل اینکه سوکت قطع شده و نامش تو لیست باکس مونده. البته من دستور زیر رو هم تو برنامه دارم.

procedure TForm1.ServerDisconnect(Client: TTCPConnection);
begin

 try  // 95-7-28
  with TClientData(Client.Data) do
  begin
    Memo1.Lines.Add(Format('%s: %s disconnected', [FormatDateTime('yyyy/MM/DD HH:mm:ss:zzz',Now), Name]));
    ListBox1.Items.Delete(ListBox1.Items.IndexOf(Name)  );
    Free;
  end;
 except end;
end;

----------


## seyed_farid

سلام
دوستان ، کسی نظری نداشت برا این مشکل؟ :افسرده:

----------


## Mask

> سلام
> دوستان ، کسی نظری نداشت برا این مشکل؟


از کدوم کامپوننت استفاده میکنید؟
ایا در ondiscpnnect یوزری که قطع میشه رو از لیست حذف میکنید؟

----------

