![]() |
|
#1
|
|||
|
|||
![]() Вобщем проблема такая.
При коннекте к серверу клиент посылает на него определённый номер(один клиент каждый раз один и тот же номер), предположим 1111, другой клиент пусть 2222. Я хочу чтоб при коннекте создавался файл, название которого этот номер, и чтоб всё что приходило на сервер от этого клиента писалось в этот файл. Уже много где перелазил, пересмотрел, но ничего не выходит. Я так понимаю нужно использовать socket.data? И записывать туда номер в событии ServerSocket1ClientRead. Пробовал разными способами, но всё время ошибки то с памятью то ещё какие. Кто может помочь? |
#2
|
|||
|
|||
![]() 1 день - 1 просмотр этой темы и тот мой при её создании.
Да, помирает форум видимо. |
#3
|
|||
|
|||
![]() Есть компонент в Д7 TIdTCPServer лучше использовать его.
Событие onExecute происходит, когда клиент пишет в сервер, тогда обработку будет Код:
procedure TForm1.ServerExecute(AThread: TIdPeerThread); var f: TFileStream; s,FileName,Ip,InBox,OutBox,s1: string; List:TStringList; Res,i,Err,Count,Size:integer; Rect:TRect; begin // Читаем номер 1111 или 2222 s := AThread.Connection.ReadLn; With AThread.Connection do begin // Получаем размер файла Size:=ReadInteger(); f := TFileStream.Create(s, fmCreate ); try ReadStream(f,Size); //AddLog('Принят файл '+s+' от '+ip); // Переименовываем файл F.Free; except //AddLog('Ошибка приема файла '+s); F.Free; end; Disconnect; end; end; |
#4
|
|||
|
|||
![]() Спасибо. Я уже без indy сделал.
Если будут лаги перейду на них может. |