|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Clientsocket - serverscoket
Всем привет..Подскажите как реализовать следующее:
клиентская часть,установленная на компьютере,собирает инфо и записывает его в лог..Вот что не могу релизовать-в случае доступности сервера нужно каждые 10 минут скидывать свой ip-адрес и инфо из лога в лог на сервере,при этом очищая полностью клиентский лог,а через 10 минут снова скидывать на сервер таким же образом инфо которая там к этому времени накопится(это уже реализовано)... |
#2
|
||||
|
||||
опять троянописатели )))
P.S.: стукни в аську, которая в подписи, как зайду в неё (часа через 4-6), помогу сделать, даж много-поточный сервер замутим )) Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы... ICQ: 593977748 Nick: Marvel Последний раз редактировалось Marvel, 24.06.2010 в 14:32. |
#3
|
|||
|
|||
есть умные мысли по этому поводу?
|
#4
|
||||
|
||||
На самом деле все очень просто, особенно с IP , смотрим:
Сначала определяем Ip адрес на машине клиента: Код:
function address: string; var ip: string; p: integer; begin ip:=idhttp1.get('http://www.myip.ru/get_ip.php?loc='); P := Pos('<TABLE',ip); P := PosEx('<TABLE',ip,P+1); P := PosEx('<TABLE',ip,P+1); P := PosEx('<TD',ip,P+1); P := PosEx('<TD',ip,P+1); P := PosEx('>',ip,P+1); Delete(ip,1,P); ip := Copy(ip,1,Pos('<',ip)-1); result:=ip; end; Далее отсылаем его серверу: Код:
clientsocket1.sendtext('#IP'+address); На сервере ловим так: Код:
procedure TForm.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var smessage: string; begin smessage:=socket.ReceiveText; if copy(smessage,1,3)='#IP' then begin delete(smessage,1,3); //все! адрес находится в переменной smessage, делаем че хотим. end; end; Для того чтобы сбор статистики выполнялся через каждые 10 минут, ставим таймер со значением interval = 6000000 и помещаем 1й код в обработчик срабатывания. Если есть вопросы обращайся! Последний раз редактировалось T-dayne, 25.06.2010 в 20:05. |
#5
|
||||
|
||||
T-dayne, а не проще на стороне сервера использовать ClientSocket.RemoteHost (Socket.RemoteHost - это кто через что делает), чем клиентом отсылать его IP? К тому же если это работает в локалке, где нет инета, то Ваш способ не подходит
Код:
procedure TForm.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var smessage: string; begin smessage := Socket.RemoteHost; // все! адрес находится в переменной smessage, делаем че хотим. end; norfolk23, в аську бросил ссылку на исходник, который и обещал Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы... ICQ: 593977748 Nick: Marvel Последний раз редактировалось Marvel, 26.06.2010 в 09:08. |
#6
|
||||
|
||||
Marvel
Аха, действительно. Маловато опыта... |
#7
|
|||
|
|||
всем пасиб за помощь
|