Jump to content

Angus Robertson

Members
  • Content Count

    2047
  • Joined

  • Last visited

  • Days Won

    38

Everything posted by Angus Robertson

  1. Sorry, I think this topic should now be closed. He is going around in circles installing random packages not designed for his compiler, then wasting our time repeatedly asking why they don't work. And ignoring all our efforts to install ICS properly. He needs professional help, but this is not the correct place. I will no longer be responding. Angus
  2. This may be a silly question, but did any Embarcadero.com servers ever come back? Two weeks ago... Trying to install a new version, the online installer complains get-it-olympus.embarcadero.com timeout. Angus
  3. Angus Robertson

    TSslHttpCli Request aborted on timeout in thread

    Sorry, insufficient information to make any real comment for the errors. You need proper logging to see when you are making requests and when those responses arrive, which will help explain what is wrong. This is all much easier using the TSslHttpRest component that removes over half your code, and includes logging. You should try accessing the server using the OverbyteIcsHttpRestTst sample and see if that works better. Angus
  4. Angus Robertson

    ICS for Linux?

    Another ICS user has already tried to do that with ICS V9, he sent me the modified WSocket unit but not the EpollTypes and EpollAPI units so I can not add it ICS V9. V10 does not use it. Angus
  5. The OverByteIcsDXERun package built OK, but a post build command failed, probably because you have not extracted the ICS files into our directory structure, as required. Building OverbyteIcsPingTst.dpr says Success, so why post it? We don't need minute by minute progress on your development attempts. This is not a teaching forum. If you only want to run the samples, they are all available pre-built from https://wiki.overbyte.eu/wiki/index.php/ICS_Samples Angus
  6. Angus Robertson

    ICS for Linux?

    ICS V9.0/V9.1 (soon) should support MacOS, but do not support Linux. There are some conditionals to make ICS ready for Linux and Android, and packages for both, I built them yesterday, will be in SVN later this week, but these are only to allow future Linux compatibility. ICS V10 will include full support for Linux, a very early version is at https://svn.overbyte.be/svn/icsv10/ but only has a couple of simple socket samples, it is Delphi 10.4 and later only. But there are hundreds of existing units that need converting to V10, which I plan to do later this year. Angus
  7. Delphi XE is totally different to Delphi 7, the former is a unicode compiler, the latter is ANSI only thus the errors you reported. XE2 is also different since it supports FMX and MacOS. Until you have the packages in DXeInstall.groupproj installed, I'm not looking at any logs, since nothing is expected to work. If you don't have DXeInstall.groupproj , you need to the proper version of V9.0 as has been explained before. Angus
  8. I thought you were trying to build a ping sample on Delphi XE or maybe Delphi 7. Now you are talking about installing a Delphi 2007 package, using rad studio 8.0 according to the command line, which I think is XE. Why??? You should be installing the XE packages using DXeInstall.groupproj as explained in readme9. Angus
  9. Please read my previous message again. Do not attach screen shots and copies of our files to these messages. Even your text file named errors has no error information, just more source code. If you want support, you need to report the actual compiler errors, not just send copies of code I wrote back to us. Angus
  10. I get massive logs from so called internet research companies probing my servers, I have about 40 public IP4s in three subnets and any servers listening are attacked daily, the firewalls try to restrict how many ports and IPs can be accessed, but all public servers suffer. ICS has a TIcsBlackList component that most of my servers use, any HTTP request by IP address is immediately blocked for 24 hours and new connections closed, well known IP ranges are permanently blocked, etc. So checking for non-SSL connections on SSL ports would be a useful addition. I'll experiment adding it to TSslSocketServer. Angus
  11. If ICS is installed according to the instructions in readme9, the samples should compile. With Delphi 7, you use dpk not dproj. Beware De;phi 7 is no longer supported, but should still work, Delphi XE is also very old and has not been tested for many years since my license key expired and new keys are unavailable. Exactly what error is being returned by which sample? Please copy the textual error from the compiler, no attached files or screen shots. Angus
  12. Angus Robertson

    TWSocketServer stop accepting connections

    I can read your messages, but you have still not asked anything about ICS, so this will be my last message here. I've never heard of PPPoW so won't be reading your other message. It is nothing to do with Delphi or ICS. ICS has never used github. Angus
  13. Angus Robertson

    TWSocketServer stop accepting connections

    Sorry, we rarely read files, unless the message gives information about your actual problems about ICS, then we might ask for sample code to reproduce a specific problem or logs. We still have no idea what questions you are asking here. Angus
  14. The developers working on ICS do not have any Mac hardware, therefore we can not test if it works. Previous ICS versions have been known to work, and we have not deliberately broken MacOS support, but changes may have been introduced that have broken that support. We do test Windows FMX, and I added new FMX samples last year to test new components. You should start with the samples in the platform folder. Angus
  15. ICS has an old experimental Linux package that used to build without errors. I created a new Linux package, but this gives dozens of "Previous declaration was not marked with the 'overload' directive" errors. Is there a compiler directive or something I've missed for the new package? Ditto the Android package. Angus
  16. Angus Robertson

    Overload directive and Posix

    This problem is with the new library packages I produced for ICS v9, not v10, to allow fixing Posix bugs in ICS v9. Specifically using Lib suffix: $(Auto) to avoid compiler specific packages. I fixed several Android bugs with the older library, but can no longer build Android or Linux with the new library. So IcsAndroidD110.dproj was OK, IcsAndroid.dproj gives the overload error. Both are in the SVN, the newer one is not yet zipped, pending a lot of other package changes. Angus
  17. Correct, and ICS has always used byte arrays in low level functions, the MD5 digest is a byte array, although the Sha1 digest is an AnsiChar array since it was contributed. But there were no TBytes library functions in Delphi 20 years old, so AnsiString was commonly used. I've added a lot of TBytes functions to ICS in the last few years so that support for old compilers has continued, and a TBytes version of Base64 conversion recently. But old code only gets modernised when updated for some reason. Angus
  18. ICS still supports Delphi 7 and later, so needs AnsiStrings. I am trying to modernise some code, but can not break old functions that people have used in applications for 20 years. I'm expecting some bad feedback as people upgrade to ICS V9.1 which has some non-backward compatible SSL/TLS changes, new units and conceptual changes. SVN notes have all the details. Angus
  19. This Websocket client problem should be fixed in SVN and the overnight zip, assuming it was an ANSI/Unicode casting problem with non-English character set conversions, which I'm unable to reproduce. It did not affect Websocket server which had no casting, and yet always worked against our client. The real problem is ICS has overloaded versions of many functions for ANSI and Unicode, and the compiler does not always choose the correct version if input and output parameters don't match, fixed by using a specific ANSI function. I'm slowly adding TBytes versions for binary data to avoid such problems. but it's a long job. Angus
  20. ICS has a new component TIcsNeighbDevices that builds a historic LAN neighbourhood MAC device and IP address table that shows MAC vendor name to help identify devices. Runs in a thread continually checking for new devices. ICS can be installed from Getit. To test it, build the ICS Network Tools sample, it's very similar to the excellent Nirsoft Wireless Network Watcher tool I've run continually for a decade to monitor my LAN. Angus
  21. I offer clients a REST API service to look-up telecommunication information, using the ICS web application server and MS SQL server. It works well, for low volumes of queries, but most users start a new SSL/TLS session for each query, which becomes a limiting factor with performance. So I want to offer a Websocket API as well, so one SSL/TLS session stays open, with just simple request/response packets sent. But how to adapt the REST HTTP request/response to Websocket? My queries are simple URL parameters, ie codelookapi.htm?numhistory=118118. Should the Websocket message just be the arguments or include the full or partial URL as well? Or something else, like a command? Should the initial Websocket request allow arguments, or just open the connection? Should be Websocket response message be just a JSON block, or include a wrapper of some sort, like the HTTP response header? Has anyone done a similar design? I just want to make it easy for clients using standard Websocket client libraries to integrate the new API. Angus
  22. Angus Robertson

    Designing a Websocket API

    The new Websocket API is live, when using streamlined requests, it handles about 100 SQL queries a minute from a single thread, although slower if the requests are sent sequentially waiting for a reply. Supporting JSON-RPC 2.0 on the server should not be hard, but does need POST support, I'll look at adding it to the ICS web server database sample. Client is a little harder since JSON-RPC 2.0 JSON-RPC uses a sequential ID to keep track of requests. Angus
  23. The output of the hash function is AnsiString and the input to encode is AnsiString, so the String cast is unnecessary. I'll remove it for the new version going to SVN today. Angus
  24. The Base64Encode and SHA1ofStr functions were written 20 to 25 years ago before Unicode, we convert to UTF-8 before calling them if needed. In this unit, the input to create the server key is a Base64 encoded random number we created and sent to the server earlier and a GUID so all simple ASCII. Angus
  25. I will need to reproduce connection failures before I look into fixing them. So I need a Websocket server to test against. My only suggestion is to try the client against other servers and see if any fail, because no-one else has reported any problems. Angus
×