Confused on TCP/IP Server lazarus / 38-Networking and Web Programming ---------------------------------------------------------------------- Edson · 2014-03-09 17:49 First of all, I 'm new on networking with Lazarus. I need to connect to an App, using TCP/IP, and  I was reading about how to create a TCP/IP Server, but I'm getting confused. I found the documentation is incomplete or not so clear. Basically, I need to have a server than accept connections from a client.  I have done this easily on VB, using the "WinSock" control. I was trying using TSimpleIPCClient,  and TSimpleIPCServer, but they seem to be designed for comunicating inside the same server. So the questions are: * What are TSimpleIPCClient,  and TSimpleIPCServer for? * Is there some native (no need for extra package) solution on Lazarus, for create a TCP Server? If yes, what is(are) it? If not, what are the alternatives? Indy, Synapse? * Is it posible to do that using the "Sockets" unit? Is there some examples? * Is this package http://wiki.lazarus.freepascal.org/Sockets, the same that the "Sockets" unit that come with Lazarus? Thanks on advance. ---------------------------------------------------------------------- taazz · 2014-03-09 18:12 IPC = Inter Process Communication and this requires that both server and client run on the same computer/hardware it is not tcp. as far as I know there are 3 libraries for network communications 1) lnet 2) Synapse 3) Indy. Every library has its pros and cons with indy being to most feature rich synapse is stable and easier to use than indy and lnet seems to be on the same level as synapse with less protocols supported. all support tcp communication if memory serves me right. Personaly I used indy so far mainly because it supports more protocols although it seems to require more effort to master. ---------------------------------------------------------------------- marcov · 2014-03-09 20:52 You are not saying if you need it portable. Btw, there is also ICS. In general I use Indy too. It has downsides (not really zero copy, somewhat baroque architecture), but as a general toolbox with many protocols supported it simply works best. For FPC there is the sockets unit, but that only exposes the OS sockets layer somewhat. And anything but the most basic use of sockets is not very portable, so I would advise to directly use a socket suite ---------------------------------------------------------------------- Edson · 2014-03-09 22:07 Thanks for the repsonses. I need it to be portable, with no dependencies. No need for extra libraries should be required. Finally I have downloaded the Synapse units, and I have tested the "\synapse40\source\demo\echo" example for a simple Server. And it works (I would have been happy, if the authors would have included some comments), but I have the feeling that this code support multiple connections. I need a simple version for only one connection. ---------------------------------------------------------------------- JD · 2014-03-09 22:58 Quote from: marcov on March 09, 2014, 09:52:32 pmBtw, there is also ICS. Can you use ICS with Lazarus? I've used it with Delphi but never with Lazarus. I use Indy myself too. ---------------------------------------------------------------------- marcov · 2014-03-10 10:53 Quote from: JD on March 09, 2014, 11:58:09 pmCan you use ICS with Lazarus? I've used it with Delphi but never with Lazarus. I use Indy myself too. It worked before Indy did, I first ported ICS since it had better console demoes. Older versions (5 and 6 or so?) might still work.