* PING requires raw sockets which are only accessible to root on unix platforms. It was decided that lNet won’t support this, users who need PING should use the ping and ping6 programs via TProcess.



  1. anon said,

    Are you planning to add a POP mail component?

  2. anon said,

    Will you add Proxy support to HTTP component?

  3. almindor said,

    Proxy probably yes, POP has however very low priority. Any additions will get accepted however if they have some minimal quality.

  4. Robert Lakis said,

    Any planning to enable synchronous socket, at least FTP client.

  5. almindor said,

    If by Synchronous socket you mean blocking socket operations then you can already do so since 0.5.0 era. You can enable sockets to be blocking by TLSocket.SetState(ssBlocking, True) on lNet 0.6+ or by TLSocket.Blocking := True on 0.5+ versions.

    If you need your sockets to be blocking right on create, you can make a TLSocket or TLSSLSocket descendant and override the SetOptions virtual method and change state to blocking right there. Don’t forget to call inherited BEFORE your changes (so even if inherited sets it to non-blocking and other options possibly, you set your own at the end)! Then just assign your socket class to “connection.SocketClass” and you’re done (before first connect/listen attempt). Works for higher protocols too.

    Note also that TLSSLSession currently changes the socketclass of it’s connection to TLSSLSocket IF it’s not already set to it or it’s descendant. So you have to use a TLSSLSocket descendant for your socket if you wish to use it (the only reason not to would be to avoid libc in Linux).

    Hope this helps, I should update the docs and write some info on these things.

  6. war said,

    Hey INet is realy nice and multi-platform, do you plan a TIRCClient

    Indy have one and are based on
    Cool if it can be in inet,but i just wanna ask


  7. almindor said,

    IRC isn’t officially planned however, FPCBot is written with lNet and has already basic client side IRC code in it. I never got to separating it into a proper protocol however. If anyone else does it it’ll get accept of course (provided the quality meets some minimum requirements) but I don’t plan to work on that anytime soon.

  8. Rapid said,

    What about IPv6 support?

  9. almindor said,

    IPv6 isn’t planned officially but I have looked into it in the past. It shouldn’t be too difficult to add.

  10. LacaK said,

    lNet cann’t compile using FPC >= 2.3.1
    Error: absolute can only be associated with a var or const
    Any plans to fix it ? or how to workaround ?

    • almindor said,

      Everything works for me with latest trunk (2.5.1). Can you please recheck? Also write more details (exact error, where it happened, when) to my mail.

  11. Rajiv Ranjan said,

    any time line for the release of Carbon and/or Cocoa support


    • almindor said,

      Carbon/Cocoa is a bit of a problem for me because I don’t currently have access to a Mac.

  12. kickmartens said,


    I am using your lnet package to implement webservices in my winCE app. Everthing works fine if the webservice url is correct. But if its not it just “hangs” indefinitly. I tried to set the timeout prop for lhttpclient but that isnt helpfull.
    any help would be appriciated…

  13. Ludo from fr said,


    I migrate all my projects under ubuntu/Lazarus.

    I’m not decided about witch component to use for internet.

    The best one should be a component working well on both win/linux/mac os.

    After reading all the documentation about LNet, i finally don’t know if it support mac os…

    So, where is the truth ?

    On the main page § Tested on:
    mac os is not mentioned.

    Thank you in advance.

    • almindor said,

      lNet NON-VISUAL (console examples, not the component you put on form) is working on MacOsX and is mostly tested by fpc mac users.

      Visual lNet will not work on MacOsX Carbon/Cocoa widgetset (will work on gtk/qt one tho) until I get a Mac working in virtualbox and write the hooks for it (or someone else does it).

  14. devsmt said,

    i would like to thank you for your excellent library, useful and “to the point” when compared to biger alternatives.
    i’m so enthusiast of it, that i’m asking myself WHY it is not part of lazarus and referred as the default way of doing net operations under fp!

    • almindor said,

      Hey, first of all thanks for all the praise 😉

      Well, currently FPC and Lazarus doesn’t really have a “default” way of doing networking, and since there are two big alternatives (or “mainstreams” perhaps) to lNet people are being careful about such moves. Also, lNet is mainly a one-man show while the other projects are bigger, I think this is another reason why people don’t want to completely “make the jump”. In a sense I think that’s a good thing, because I don’t have the free time I used to have and unless more people actively get to develop the lib, it might stagnate one day.

  15. Dibo said,

    Are you planning to add websocket component?

  16. vincococka said,

    is there any chance to have websocket ?

    • almindor said,

      It shouldn’t be too hard to do. However I’m too busy with other projects to do anything but bugfixing atm. If you want to take a jab at it, I’d start by looking how a websocket it “upgraded” form a normal HTTP GET into a stable TCP connection.

      As far as I understand websockets a normal HTTP GET is done first with a special section/header that says “websocket” somehow. Then the server accepts it and “upgrades” the connection confirming it to the client who keeps the TCP stream open. From then on it’s just websocket messaging, low level TCP message-split stuff with a bit of control structure.

      It’s not trivial but if someone needs it it shouldn’t take too long to add. No low level stuff needs to be changed AFAIK, just expand on TLHttp stuff.

  17. Almindor,
    I’m using lNet UDPcomponent under linux as a UDP-server for years without any problems (it serves an Android and an iPhone app), but now Apple insists on using ipv6. As of july 1, 2016, they are testing the apps in a ipv6-only environment.

    So my server has to speak ipv6.

    For http it works, the server has an ipv6 ipnr on the same interface as the ipv4 (eth0).

    As far as I can see I can set only portnr and interface in the Listen() method, but the interface is the same as the ipv4 interface.

    Question: how do I tell an lNet UDP client to listen for ipv6 UDP packets?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: