proto:ansistring;\r
       udp,dgram:boolean;\r
       listenqueue:integer;\r
+\r
+      onconnecttryip:procedure(sender:tobject; const ip:tbinip) of object;\r
+\r
       {$ifdef secondlistener}\r
       secondlistener:tlsocket;\r
       lastsessionfromsecond:boolean;\r
 procedure tlsocket.realconnect;\r
 var\r
   a,b:integer;\r
+  iptemp:tbinip;\r
 begin\r
+  iptemp := biniplist_get(biniplist,currentip);\r
   //writeln('trying to connect to ',ipbintostr(biniplist_get(biniplist,currentip)),'#',port);\r
-  makeinaddrv(biniplist_get(biniplist,currentip),port,inaddr);\r
+  if assigned(onconnecttryip) then onconnecttryip(self,iptemp);\r
+  makeinaddrv(iptemp,port,inaddr);\r
   inc(currentip);\r
   if (currentip >= biniplist_getcount(biniplist)) then trymoreips := false;\r
 \r