[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 917
  • Last Modified:

Streams over a TCP/IP socket

I need a good TCP/IP unit that is capable of sending streams thru the socket.

A simple example of a GetStream() and PutStream() would be sufficient.

I'd like to use the TCP/IP components that come with Delphi 4.

IDeally, I'd like to use TReader and TWriter to read and write to a socket rather then a stream.

Well something like that...
0
arcrotty
Asked:
arcrotty
1 Solution
 
danyszCommented:
There is a sample coming with delphi ( chat example) where is in use the sending of a string. In stead of string you just have to send a stream ( array of char- buffer).
To make the simplest check just change the functions in the example using StrPas on receiving and StrPCopy on sending to transform the strings to buffer.

Have a good day

daniel
0
 
bryan7Commented:
http://www.rtfm.be/fpiette/indexuk.htm
get ICS (fpiette's *free* components)
they are really great.. better than the components
coming with delphi, you can use UDP, TCP etc...
and send streams or strings..

it comes with a lot of well explained demos
and full source
0
 
God_AresCommented:
http://www.angelfire.com/ok/GODARES/downl.html

get zwembroek or filetransver

Good Luck

God_Ares
0
Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

 
arcrottyAuthor Commented:
I have fpiette's routines.  I even use them.  I just wanted a simple routine to send a tstream in tact.  I can do this myself as I am not a newbie, but I wanted to see what other people came up with.  This is considered a very low value post coming from me as most questions I make worth in upwards of 500 each.
0
 
alsantosCommented:
Use the ICS components, it have the TWSocket. Download it on http://www.rtfm.be/fpiette/indexuk.htm
0
 
PerseoCommented:
// Server app
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
var
      S : TStream;
      C      :      Pointer;
begin
      S      :=      TFileStream.Create('c:\file2',fmCreate);
      GetMem(C,Socket.ReceiveLength);
      Socket.ReceiveBuf(C^,Socket.ReceiveLength);
      S.Write(C^,Socket.ReceiveLength);
      FreeMem(C);
      S.Free;
end;

//Client App
procedure TForm1.Button1Click(Sender: TObject);
begin
      ClientSocket1.Active      :=      True;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
var
      S : TStream;
begin
      S      :=      TFileStream.Create('c:\file1',fmOpenRead);
      Socket.SendStream(S);
      S.Free;
end;

0
 
arcrottyAuthor Commented:
Answer accepted
0
 
arcrottyAuthor Commented:
Hey that's pretty good.  I would have done something similiar.  You can have the points as not many people are responding anymore.

Cheers.
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now