[fpc-pascal] Implementing a simple tcp/ip connection

Giuliano Colla giuliano.colla at fastwebnet.it
Thu May 28 17:08:33 CEST 2020


Hi everybody,

I needed to implement a simple dedicated TCP/IP connection between a 
client and a server. Nothing fancy, just sending and receiving short 
strings.
I have used in the past for that purpose the unit Sockets lifting it 
from Delphi/Kylix. This unit was taking advantage of libc, and this 
makes it unusable today.

Instead of using heavy libraries such as Synapse, intended or other 
purposes I believe I have found a simpler and cleaner solution by just 
using the fpc Sockets unit.
This unit however doesn't provide all of the required functionalities. 
Therefore I have implemented a small unit which I named klibc, which 
provides the extra functions required such as fpinet_addr, 
fpgethostbyname etc. and which i share which whomever has similar problems.

As I'm in possess of a valid licence, I also took advantage of the Kylix 
Sockets unit, which I adjusted and renamed KSockets to avoid name 
clashing. Being copyrighted code I can't share it publicly, but I can 
share it privately with whomever is in a similar condition as mine.

I have not yet tested all functionalities, but the Delphi/Kylix NetChat 
example works just fine. I only had to add KSockets and BaseUnix in the 
uses clause without touching the rest of code. There are a few things 
which deserve attention, because some deprecated functions are used, 
such as inet_addr (which should be replaced with intet_ntoa, already 
supported by klibc) and suspend and resume used in thread handling.

Hope that it can be useful.

-- 
Do not do to others as you would have them do to you.They might have different tastes.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: klibc.zip
Type: application/x-zip-compressed
Size: 1231 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20200528/4c81c9bd/attachment.bin>


More information about the fpc-pascal mailing list