|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
передача данных TcpServer TcpClient
получение файла код клиента
Код:
procedure TForm1.Button1Click(Sender: TObject); var msg : string; sz : integer; stream: TMemoryStream; begin tcpClient1.RemoteHost:=Edit1.Text; tcpClient1.Active := true; if TcpClient1.Connect then begin TcpClient1.Sendln('basa'); msg := Tcpclient1.Receiveln; sz := StrToInt(msg); stream := TMemoryStream.Create; stream.SetSize(sz); Tcpclient1.ReceiveBuf(stream.Memory^, sz); stream.SaveToFile('base.txt'); TcpClient1.Disconnect; end else showmessage('Error connecting'); tcpClient1.Active := false; end; Код:
procedure TForm1.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); var stream: TMemoryStream; msg: string; sz: integer; begin msg := ClientSocket.Receiveln; if (msg= 'basa') then begin stream := TMemoryStream.Create; stream.LoadFromFile('ServBase\base1.txt'); ClientSocket.Sendln(inttostr(stream.Size)); ClientSocket.SendBuf(stream.Memory^, stream.Size); end Цитата:
да и собственно как передать данные с клиента сервер Код:
procedure TForm1.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); var stream: TMemoryStream; msg: string; sz: integer; begin msg := ClientSocket.Receiveln; if (msg= 'basa') then begin stream := TMemoryStream.Create; stream.LoadFromFile('ServBase\base1.txt'); ClientSocket.Sendln(inttostr(stream.Size)); ClientSocket.SendBuf(stream.Memory^, stream.Size); end else if msg = 'base' then begin ClientSocket.Sendln('ok'); stream := TMemoryStream.Create; sz := StrToInt(msg); stream.SetSize(sz); ClientSocket.Sendln('ok'); ClientSocket.ReceiveBuf(stream.Memory^, sz); stream.SaveToFile('ServBase\base1.txt'); stream.Free; end; end; клиент Код:
procedure TForm1.Button3Click(Sender: TObject); var stream: TMemoryStream; msg: string; begin tcpClient1.Active := true; if TcpClient1.Connect then begin stream := TMemoryStream.Create; stream.LoadFromFile('base.txt'); TcpClient1.Sendln('base'); if TcpClient1.Receiveln = 'ok' then TcpClient1.Sendln(IntToStr(stream.Size)); if TcpClient1.Receiveln = 'ok' then TcpClient1.SendBuf(stream.Memory^, stream.Size); tcpClient1.Active := false; TcpClient1.Disconnect; end else showmessage('Error connecting'); end; получаю разрешение ок передаю размер получаю разрешение и отправляю файл но похоже что никаких разрешений не приходит |