Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: TTcpClient and TTcpServer



Permlink Replies: 16 - Last Post: Apr 5, 2017 8:45 PM Last Post By: Behzad Kubatov
James Williams

Posts: 63
Registered: 8/22/13
TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 8:40 AM
Can someone please tell me where the TTcpClient and TTcpServer VCL components went in XE6 & XE7. I have an application that I am migrating from XE5 and it seems that these components have disappeared.

Thanks

James
Borja Serrano

Posts: 172
Registered: 1/10/13
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 9:27 AM   in response to: James Williams in response to: James Williams
Hello James

As you can see here:

http://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_sockets_Index

Web.Win.Sockets has been deprecated. You can still install the components building and installing the sample from:

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL

As it is a Delphi project if you have C++ Builder you will need to build it using "msbuild" from the RAD Studio command prompt:

cd C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL\InetWinSockets
msbuild inetwinsockets.dproj

Regards,

--
Borja Serrano
Embarcadero Technical Support Engineer
James Williams

Posts: 63
Registered: 8/22/13
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 10:24 AM   in response to: Borja Serrano in response to: Borja Serrano
So, what is it being replaced with? I hope not the IndyTcp Client & Server.

Borja Serrano wrote:
Hello James

As you can see here:

http://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_sockets_Index

Web.Win.Sockets has been deprecated. You can still install the components building and installing the sample from:

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL

As it is a Delphi project if you have C++ Builder you will need to build it using "msbuild" from the RAD Studio command prompt:

cd C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL\InetWinSockets
msbuild inetwinsockets.dproj

Regards,

--
Borja Serrano
Embarcadero Technical Support Engineer
Borja Serrano

Posts: 172
Registered: 1/10/13
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 11:02 AM   in response to: James Williams in response to: James Williams
According to the same page:

http://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_sockets_Index

<<<
Instead of Web.Win.Sockets, consider using the existing comparable RTL sockets solutions in the System.Win.ScktComp unit, such as:

TClientSocket
TClientWinSocket
TServerClientWinSocket
TServerSocket
TServerWinSocket
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 11:23 AM   in response to: James Williams in response to: James Williams
James wrote:

So, what is it being replaced with?

Nothing.

I hope not the IndyTcp Client & Server.

Why?

--
Remy Lebeau (TeamB)
James Williams

Posts: 63
Registered: 8/22/13
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 11:39 AM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy Lebeau (TeamB) wrote:
James wrote:

So, what is it being replaced with?

Nothing.

I hope not the IndyTcp Client & Server.

Why?
Because the Indy components are blocking components. If I open a TCPIP client, and I want to achieve a independant overlapped I/O operation, then this is not possible. I would have to first do either a read or write, wait for it to complete and then do the opposite write or read. In a full duplex system, this is non-idea. Unless I missed something with the Indy components. Additionally, I would be forced to place the Client & Server into their own threads, at the very start, which is not a big deal, but still.

In my particular application, I have a service that will write out at regular controlled intervals. Every 25ms in my case. At the same time it may will initiate a read operation on the same connection resource if the last read operation that was requested at time t-25 has finished. Otherwise it skips that read for the current write interval. It does not wait for the read to return as the sender is allowed to send any interval. However, the server is required to responsd to the request the moment it arrives.


--
Remy Lebeau (TeamB)
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 15, 2014 12:01 PM   in response to: James Williams in response to: James Williams
James wrote:

Because the Indy components are blocking components.

That is your only complaint? See this portion of Indy's documentation:

http://www.indyproject.org/docsite/html/IntroIndy.html

Indy is Blocking

Indy uses blocking socket calls. Blocking calls are much like reading and
writing to a file. When you read data, or write data, the function will not
return until the operation is complete. The difference from working with
files is that the call may take much longer as data may not be immediately
ready for reading or writing (It can only operate as fast as the network
or the modem can handle the data).

For example, to connect simply call the connect method and wait for it to
return. If it succeeds, it will return when it does. If it fails, it will
raise an exception.

Blocking is NOT Evil

Blocking sockets have been repeatedly attacked with out warrant. Contrary
to popular belief, blocking sockets are not evil.

When Winsock was "ported" to Windows, a problem quickly arose. In Unix it
was common to fork (kind of like multi threading, but with separate processes
instead of threads). Unix clients and daemons would fork processes, which
would run, and use blocking sockets. Windows 3.x could not fork and did not
support multi threading. Using the blocking interface "locked" user interfaces
and made programs unresponsive. So asynchronous extensions were added to
WinSock to allow Windows 3.x with its shortcomings to use Winsock without
"locking" the main and only thread of a program. This however required a
different way of programming., and Microsoft and others vilified blocking
vehemently so as to mask the shortcomings of Windows 3.x.

Then along came Win32 which could properly multi-thread. But at this point,
everyone's mind had been changed (i.e. Developers believed blocking sockets
were evil), and it is hard to "backtrack" once a statement has been made.
So the continued vilification of blocking sockets continues.

In reality, blocking sockets are the ONLY way Unix does sockets. Blocking
sockets also offer other advantages, and are much better for threading, security,
and other aspects. Some extensions have been added for non-blocking sockets
in Unix. However they work quite differently than in Windows. They also are
not standard, and not in wide use. Blocking sockets under Unix still are
used in almost every case, and will continue to be so.

If I open a TCPIP client, and I want to achieve a independant overlapped
I/O operation, then this is not possible.

Yes, it is. Move the TCP/IP client or the overlapped I/O to a separate thread.
If you want to use the client in the main UI thread (which is not advisable,
but allowed), use the TIdAntiFreeze component to avoid blocking the message
queue.

I would have to first do either a read or write, wait for it to complete
and then
do the opposite write or read.

You can do full duplex I/O with Indy. You just have to do the reading and
writing in separate threads, that's all.

Additionally, I would be forced to place the Client & Server into their
own threads,
at the very start, which is not a big deal, but still.

Not a big deal, and how Indy should be used. You really should not be doing
anything blocking in the main thread.

BTW, Indy TCP servers are already multi-threaded, so you don't have to put
a server in its own thread, because it runs its own threads internally.

In my particular application, I have a service that will write out at
regular controlled intervals.

A service is multi-threaded to begin with. So it is not a stretch to do
socket I/O in threads as well.

Every 25ms in my case. At the same time it may will initiate a read operation
on the same connection resource if the last read operation that was requested
at time t-25 has finished. Otherwise it skips that read for the current
write
interval. It does not wait for the read to return as the sender is allowed
to
send any interval. However, the server is required to responsd to the
request
the moment it arrives.

All the more reason to use Indy, actually. If you abort the read, the data
still exists in the socket when it does arrive, so you might end up with
a later read receiving older data. At least with Indy, you can simply do
the reading in a loop in its own thread, with a timeout if needed (which
is usually not preferred, just let it block until data arrives, but timeouts
are supported), and you can respond immediately to any message that arrives,
independant of whatever else the service/app is doing in other threads.

--
Remy Lebeau (TeamB)
Joe Pasquariello

Posts: 37
Registered: 6/14/00
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 30, 2014 7:50 AM   in response to: James Williams in response to: James Williams
In addition to Indy, some other network component options are:

- IP*works (non-blocking, I think)
- ICS (non-blocking)
- Synapse (blocking)

I use Synapse for simple TCP stuff. It's free, though you can make a
donation if you like it. If you decide to try it, get the latest trunk
(192) from the link below. The blocking model has some advantages, if
you give it a try.

http://sourceforge.net/p/synalist/code/HEAD/tree/

Joe

Studio.On 10/15/2014 11:39 AM, James Williams wrote:

Remy Lebeau (TeamB) wrote:
James wrote:

So, what is it being replaced with?

Nothing.

I hope not the IndyTcp Client & Server.

Why?
Because the Indy components are blocking components. If I open a TCPIP client, and I want to achieve a independant overlapped I/O operation, then this is not possible. I would have to first do either a read or write, wait for it to complete and then do the opposite write or read. In a full duplex system, this is non-idea. Unless I missed something with the Indy components. Additionally, I would be forced to place the Client & Server into their own threads, at the very start, which is not a big deal,
but still.

In my particular application, I have a service that will write out at regular controlled intervals. Every 25ms in my case. At the same time it may will initiate a read operation on the same connection resource if the last read operation that was requested at time t-25 has finished. Otherwise it skips that read for the current write interval. It does not wait for the read to return as the sender is allowed to send any interval. However, the server is required to responsd to the request the moment it ar
rives.


--
Remy Lebeau (TeamB)
Behzad Kubatov

Posts: 6
Registered: 2/12/17
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 3, 2017 7:57 PM   in response to: James Williams in response to: James Williams
When I tried to use TcpClient and TTcpServer with Firemonkey I got Following Errors :

Checking project dependencies...
Compiling Clien.dproj (Debug, Android)

[DCC Error] Web.Win.Sockets.pas(63): E2003 Undeclared identifier: 'PAnsiChar'
[DCC Error] Web.Win.Sockets.pas(65): E2003 Undeclared identifier: 'Exception'
[DCC Error] Web.Win.Sockets.pas(67): E2003 Undeclared identifier: 'TComponent'
[DCC Error] Web.Win.Sockets.pas(73): E2003 Undeclared identifier: 'TSocketDomain'
[DCC Error] Web.Win.Sockets.pas(75): E2003 Undeclared identifier: 'TSocket'
[DCC Error] Web.Win.Sockets.pas(85): E2005 'TSocketDomain' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(93): E2005 'PAnsiChar' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(94): E2005 'PAnsiChar' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(96): E2137 Method 'Loaded' not found in base class
[DCC Error] Web.Win.Sockets.pas(101): E2005 'TComponent' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(102): E2037 Declaration of 'Create' differs from previous declaration
[DCC Error] Web.Win.Sockets.pas(105): E2005 'TSocketDomain' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(109): E2003 Undeclared identifier: 'AnsiString'
[DCC Error] Web.Win.Sockets.pas(109): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(112): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(112): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(113): E2003 Undeclared identifier: 'TStream'
[DCC Error] Web.Win.Sockets.pas(120): E2005 'TSocketDomain' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(120): E2003 Undeclared identifier: 'pfUnspec'
[DCC Error] Web.Win.Sockets.pas(121): E2005 'TSocket' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(146): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(147): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(169): E2005 'TComponent' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(170): E2003 Undeclared identifier: 'TSockAddr'
[DCC Error] Web.Win.Sockets.pas(171): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(172): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(173): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(173): E2005 'PAnsiChar' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(174): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(175): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(179): E2005 'TSockAddr' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(180): E2005 'TSockAddr' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(186): E2003 Undeclared identifier: 'pfInet'
[DCC Error] Web.Win.Sockets.pas(204): E2005 'TComponent' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(220): E2005 'TComponent' is not a type identifier
[DCC Warning] Web.Win.Sockets.pas(227): W1025 Unsupported language feature: 'custom attribute'
[DCC Error] Web.Win.Sockets.pas(230): E2005 'TComponent' is not a type identifier
[DCC Warning] Web.Win.Sockets.pas(232): W1055 PUBLISHED caused RTTI ($M+) to be added to type 'TUdpSocket'
[DCC Warning] Web.Win.Sockets.pas(250): W1025 Unsupported language feature: 'custom attribute'
[DCC Warning] Web.Win.Sockets.pas(252): W1055 PUBLISHED caused RTTI ($M+) to be added to type 'TTcpClient'
[DCC Error] Web.Win.Sockets.pas(271): E2003 Undeclared identifier: 'TThread'
[DCC Error] Web.Win.Sockets.pas(282): E2137 Method 'Execute' not found in base class
[DCC Error] Web.Win.Sockets.pas(293): E2005 'TThread' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(298): E2003 Undeclared identifier: 'TList'
[DCC Error] Web.Win.Sockets.pas(312): E2137 Method 'Execute' not found in base class
[DCC Error] Web.Win.Sockets.pas(315): E2005 'TList' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(333): E2003 Undeclared identifier: 'TNotifyEvent'
[DCC Error] Web.Win.Sockets.pas(342): E2003 Undeclared identifier: 'SOMAXCONN'
[DCC Error] Web.Win.Sockets.pas(345): E2005 'TComponent' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(358): E2005 'TNotifyEvent' is not a type identifier
[DCC Warning] Web.Win.Sockets.pas(361): W1025 Unsupported language feature: 'custom attribute'
[DCC Warning] Web.Win.Sockets.pas(363): W1055 PUBLISHED caused RTTI ($M+) to be added to type 'TTcpServer'
[DCC Error] Web.Win.Sockets.pas(410): E2003 Undeclared identifier: '__socket_type'
[DCC Error] Web.Win.Sockets.pas(411): E2003 Undeclared identifier: 'SOCK_STREAM'
[DCC Error] Web.Win.Sockets.pas(411): E2003 Undeclared identifier: 'SOCK_DGRAM'
[DCC Error] Web.Win.Sockets.pas(411): E2003 Undeclared identifier: 'SOCK_RAW'
[DCC Error] Web.Win.Sockets.pas(411): E2003 Undeclared identifier: 'SOCK_SEQPACKET'
[DCC Error] Web.Win.Sockets.pas(415): E2005 'TComponent' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(417): E2034 Too many actual parameters
[DCC Error] Web.Win.Sockets.pas(423): E2003 Undeclared identifier: 'IPPROTO_IP'
[DCC Error] Web.Win.Sockets.pas(424): E2003 Undeclared identifier: 'INVALID_SOCKET'
[DCC Error] Web.Win.Sockets.pas(453): E2003 Undeclared identifier: 'socket'
[DCC Error] Web.Win.Sockets.pas(453): E2003 Undeclared identifier: 'Xlat_Domain'
[DCC Error] Web.Win.Sockets.pas(454): E2003 Undeclared identifier: 'INVALID_SOCKET'
[DCC Warning] Web.Win.Sockets.pas(454): W1023 Comparing signed and unsigned types - widened both operands
[DCC Error] Web.Win.Sockets.pas(484): E2003 Undeclared identifier: 'INVALID_SOCKET'
[DCC Error] Web.Win.Sockets.pas(490): E2005 'TSocketDomain' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(492): E2003 Undeclared identifier: 'Xlat_Domain'
[DCC Error] Web.Win.Sockets.pas(502): E2003 Undeclared identifier: 'recv'
[DCC Error] Web.Win.Sockets.pas(502): E2003 Undeclared identifier: 'MSG_PEEK'
[DCC Error] Web.Win.Sockets.pas(507): E2003 Undeclared identifier: 'recv'
[DCC Error] Web.Win.Sockets.pas(508): E2003 Undeclared identifier: 'SOCKET_ERROR'
[DCC Error] Web.Win.Sockets.pas(512): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(512): E2005 'AnsiString' is not a type identifier
[DCC Error] Web.Win.Sockets.pas(515): E2003 Undeclared identifier: 'AnsiChar'
[DCC Error] Web.Win.Sockets.pas(516): E2007 Constant or type identifier expected
[DCC Error] Web.Win.Sockets.pas(525): E2003 Undeclared identifier: 'strpos'
[DCC Error] Web.Win.Sockets.pas(526): E2015 Operator not applicable to this operand type
[DCC Error] Web.Win.Sockets.pas(527): E2015 Operator not applicable to this operand type
[DCC Error] Web.Win.Sockets.pas(527): E2008 Incompatible types
[DCC Error] Web.Win.Sockets.pas(529): E2015 Operator not applicable to this operand type
[DCC Error] Web.Win.Sockets.pas(530): E2008 Incompatible types
[DCC Fatal Error] Web.Win.Sockets.pas(534): E2226 Compilation terminated; too many errors
Failed
Elapsed time: 00:00:21.1

As you can see here:

http://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_sockets_Index

Web.Win.Sockets has been deprecated. You can still install the components building and installing the sample from:

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL

As it is a Delphi project if you have C++ Builder you will need to build it using "msbuild" from the RAD Studio command prompt:

cd C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL\InetWinSockets
msbuild inetwinsockets.dproj

Regards,

--
Borja Serrano
Embarcadero Technical Support Engineer

Edited by: Behzad Kubatov on Apr 3, 2017 7:57 PM
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: TTcpClient and TTcpServer [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 4, 2017 8:33 AM   in response to: Behzad Kubatov in response to: Behzad Kubatov
Behzad wrote:

Compiling Clien.dproj (Debug, Android)

The Web.Win.Sockets unit only supports two platforms - Windows and (CLX-based)
Linux. Those are the only two platforms that include the Classes and SysUtils
units and platform-specific socket API units, and define all of the other
missing types being complained about. All of the errors you are seeing are
side effects of missing functionality that is simply not defined for Android.

Support for the CLX socket components was dropped before OSX, iOS, and Android
were added to it. And for good reason - they are dead components. Don't
even try to use them at all.

--
Remy Lebeau (TeamB)
Behzad Kubatov

Posts: 6
Registered: 2/12/17
Re: TTcpClient and TTcpServer [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 5, 2017 8:45 PM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy, Thank you for your replay!
Remy Lebeau (TeamB) wrote:
Behzad wrote:

Compiling Clien.dproj (Debug, Android)

The Web.Win.Sockets unit only supports two platforms - Windows and (CLX-based)
Linux. Those are the only two platforms that include the Classes and SysUtils
units and platform-specific socket API units, and define all of the other
missing types being complained about. All of the errors you are seeing are
side effects of missing functionality that is simply not defined for Android.

Support for the CLX socket components was dropped before OSX, iOS, and Android
were added to it. And for good reason - they are dead components. Don't
even try to use them at all.

--
Remy Lebeau (TeamB)
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: TTcpClient and TTcpServer [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 4, 2017 8:38 AM   in response to: Behzad Kubatov in response to: Behzad Kubatov
Behzad wrote:

Compiling Clien.dproj (Debug, Android)

The Web.Win.Sockets unit only supports two platforms - Windows and (CLX-based)
Linux. Those are the only two platforms that include the Classes and SysUtils
units and platform-specific socket API units, and define all of the other
missing types being complained about. All of the errors you are seeing are
side effects of missing functionality that is simply not defined for Android.

Support for the CLX socket components was dropped before OSX, iOS, and Android
were added to it. And for good reason - they are dead components. Don't
even try to use them at all.

--
Remy Lebeau (TeamB)
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 4, 2017 2:19 PM   in response to: Behzad Kubatov in response to: Behzad Kubatov
Behzad wrote:

Compiling Clien.dproj (Debug, Android)

The Web.Win.Sockets unit only supports two platforms - Windows and (CLX-based)
Linux. Those are the only two platforms that include the Classes and SysUtils
units and platform-specific socket API units, and define all of the other
missing types being complained about. All of the errors you are seeing are
side effects of missing functionality that is simply not defined for Android.

Support for the CLX socket components was dropped before OSX, iOS, and Android
were added to it. And for good reason - they are dead components. Don't
even try to use them at all.

--
Remy Lebeau (TeamB)
Behzad Kubatov

Posts: 6
Registered: 2/12/17
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 3, 2017 7:36 AM   in response to: Borja Serrano in response to: Borja Serrano
Hello @Borja I installed component TTcpClient/TTcpServer on Delphi Xe8. Everything is ok! As I see it's only for VCL. Is it possible to use it on Firemonkey? If not, is there any similar component for firemonkey? Thanks in advance!
Borja Serrano wrote:
Hello James

As you can see here:

http://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_sockets_Index

Web.Win.Sockets has been deprecated. You can still install the components building and installing the sample from:

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL

As it is a Delphi project if you have C++ Builder you will need to build it using "msbuild" from the RAD Studio command prompt:

cd C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL\InetWinSockets
msbuild inetwinsockets.dproj

Regards,

--
Borja Serrano
Embarcadero Technical Support Engineer
Behzad Kubatov

Posts: 6
Registered: 2/12/17
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 3, 2017 7:44 AM   in response to: Borja Serrano in response to: Borja Serrano
I installed component TTcpClient/TTcpServer on Delphi Xe8. Everything is ok! As I see it's only for VCL. Is it possible to use it on Firemonkey? If not, is there any similar component for firemonkey? Thanks in advance!
Borja Serrano wrote:
Hello James

As you can see here:

http://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_sockets_Index

Web.Win.Sockets has been deprecated. You can still install the components building and installing the sample from:

C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL

As it is a Delphi project if you have C++ Builder you will need to build it using "msbuild" from the RAD Studio command prompt:

cd C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\VCL\InetWinSockets
msbuild inetwinsockets.dproj

Regards,

--
Borja Serrano
Embarcadero Technical Support Engineer
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 3, 2017 2:24 PM   in response to: Behzad Kubatov in response to: Behzad Kubatov
Behzad wrote:

I installed component TTcpClient/TTcpServer on Delphi Xe8.

Why? They are deprecated, and were lousy components to begin with.

As I see it's only for VCL. Is it possible to use it on Firemonkey?

They are not tied to VCL, as they were originally designed for CLX in Kylix.
So they should be available in FMX, but don't expect them to actually
work correctly.

If not, is there any similar component for firemonkey?

Indy, which has shipped pre-installed in all Delphi versions for many years.

--
Remy Lebeau (TeamB)
Behzad Kubatov

Posts: 6
Registered: 2/12/17
Re: TTcpClient and TTcpServer
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 3, 2017 7:48 PM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Thank you Remy. I will try to use Indy...
Remy Lebeau (TeamB) wrote:
Behzad wrote:

I installed component TTcpClient/TTcpServer on Delphi Xe8.

Why? They are deprecated, and were lousy components to begin with.

As I see it's only for VCL. Is it possible to use it on Firemonkey?

They are not tied to VCL, as they were originally designed for CLX in Kylix.
So they should be available in FMX, but don't expect them to actually
work correctly.

If not, is there any similar component for firemonkey?

Indy, which has shipped pre-installed in all Delphi versions for many years.

--
Remy Lebeau (TeamB)
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02