Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 21:34
    dbcto commented #445
  • 14:23
    MaxRusov commented #445
  • 14:21
    MaxRusov commented #445
  • 14:20
    MaxRusov commented #445
  • 14:20
    MaxRusov commented #445
  • 02:47
    rlebeau commented #445
  • 02:45
    rlebeau commented #445
  • 02:44
    rlebeau commented #445
  • 02:42
    rlebeau commented #447
  • 02:33
    rlebeau commented #447
  • 02:32
    rlebeau labeled #343
  • 02:30
    rlebeau labeled #343
  • 02:29
    rlebeau commented #321
  • 02:23
    rlebeau commented #321
  • Feb 05 11:43
    iba-saw commented #447
  • Feb 02 15:18
    dbcto commented #445
  • Feb 02 06:53
    iba-saw commented #447
  • Feb 02 03:00
    rayaswdelphidev commented #321
  • Feb 02 02:56
    rayaswdelphidev commented #343
  • Feb 02 02:49
    rayaswdelphidev commented #321
Remy Lebeau
@rlebeau
@mezen the simplest equivilent is to 1) resolve the IP using the socket API gethostname() or getaddrinfo() directly (which are wrapped by Indy's TIdStack.HostByName() method), which uses the OS's own DNS resolver; and then 2) resolve the HostName using gethostbyaddr() or getnameinfo() (which are wrapped by Indy's TIdStack.HostByAddress() method), which also use the OS's own DNS resolver. Yes, TIdDNSResolverrequires a Host, because it implements DNS manually from scratch, and doesn't use the OS resolver at all. You can query your OS's DNS server(s), or let the user specify them.
DelphiWorlds
@DelphiWorlds
ok.. thanks
MravArun
@MravArun
Hello Techies, I am new to this forum I have a problem with INDY IDHTTP and IDSSLIOHANDLERSOCKET in delphi 5, after adding 3DES encyption in the server, all the rest call using "THTTP" fails with exception "Error Connecting with SSL", is there a way to fix this ? thanks in advance...!!
Remy Lebeau
@rlebeau
@MravArun are you using an up-to-date version of Indy 10? Are you using OpenSSL DLLs that have 3DES enabled? You might have to tweak the IOHandler's CipherList property to control which ciphers are enabled.
@MravArun also note that 3DES is vulnerable to attack, so why would you want to enable it in your server in the first place?
penengo
@penengo
Hello, How can I synchronize TcpServerExecute with external global variables, with Delphi Anonymous method is suggested, but We are using c++ builder 10.2 already we use TidSync but is deprecated. Thank in advance for some help
Remy Lebeau
@rlebeau
@penengo TIdSync still works, but is deprecated because TThread::Synchronize() with an anonymous procedure accomplishes the same thing that TIdSync was originally intended for. Read Embarcadero's documentation for How to Handle Delphi Anonymous Methods in C++.
penengo
@penengo
Thank you @rlebeau
irawancepu
@irawancepu
I want to replicate this site : https://hide.me/id/proxy to work in my internal network. From where i must begin?
DelphiWorlds
@DelphiWorlds
@rlebeau Is support for OpenSSL 1.1.0 coming? I managed to successfully build iOS simulator dylibs for 1.1.0f, and tweaked IdSSLOpenSSLHeaders so it would load the new version, however it failed to bind to a number of routines, namely: SSL_load_error_strings, SSL_library_init, SSLeay_version etc
at least I assume it failed to bind to them because that's what WhichFailedToLoad reports
DelphiWorlds
@DelphiWorlds
Complete list: SSL_load_error_strings,SSL_library_init,SSLeay_version,SSLeay,CRYPTO_lock,CRYPTO_num_locks,CRYPTO_set_locking_callback,CRYPTO_set_id_callback,ERR_free_strings,EVP_MD_CTX_init,EVP_CIPHER_CTX_flags,HMAC_CTX_init,HMAC_CTX_cleanup,CRYPTO_mem_leaks,CRYPTO_set_mem_debug_functions,OpenSSL_add_all_algorithms,OpenSSL_add_all_ciphers,OpenSSL_add_all_digests,EVP_cleanup,sk_num,sk_new,sk_new_null,sk_free,sk_push,sk_dup,sk_find,sk_value
Remy Lebeau
@rlebeau
@DelphiWorlds no work has been started yet to support 1.1.0: IndySockets/Indy#183
DelphiWorlds
@DelphiWorlds
Thanks for the update
robert010
@robert010
Looking for help on udp performance with delphi and Rad studio with wireless link
Remy Lebeau
@rlebeau
@robert010 what kind of help?
robert010
@robert010
Performance. I am using Udp so I can broadcast to multiple devices. I have fairly small messages, 96 bytes every 77 ms.. everything works fine over wired lan, but it doesn't work reliably over wireless
I found the best performance by setting the client (sender) buffer to 0, and flat out sending the output message twice.
Wondering what I can tweak and what status I can look at to see what's happening.
Remy Lebeau
@rlebeau
@robert010 define "doesn't work reliably". You do know that UDP is not reliable in general to begin with, right? Are you designing any reliability into your protocol? Sequence numbering, ACKs, resends, etc?
robert010
@robert010
I am sending a waveform, and instead of moving smoothly, e.g. drawing at the same rate it is sent. it is jumpy while on wireless, and it skips some
I check the integrity of what I rcv.. it is good.
Remy Lebeau
@rlebeau
@robert010 integrity of each individual packet doesn't matter if packets are dropped, received out of order, repeated, etc.
@robert010 are you sending the raw wave data as-is, or are you wrapping it in something like RTP?
robert010
@robert010
Out of order isn't the problem it is missing and delayed.
not using any rtp type protocol,, very simple slow stuff, just an index per increment.
Remy Lebeau
@rlebeau
@robert010 that is a defining charactertictic of UDP, you can't guarantee packet delivery, or guarantee timing. Packets may be dropped, packets may take different network routes to the target, etc. You have to be prepared to handle that. Put an incrementing sequence number in the packets, require receivers to ACK packets received, re-send any packets that are not ACKed, reorder received pacekts, etc. Of course, this only applies if you require data integrity.
robert010
@robert010
yeah but this is a lot of losses,,, and there are only two or three devices on the network and the network is isolated from the world.
it is a visual wave,, so you see what is happening.
Remy Lebeau
@rlebeau
@robert010 if the data is important, why are you using UDP?
robert010
@robert010
I may have to switch to a tcp socket.
Data is for visualization only so occasional glitch would be ok
I know the disadvantages of udp.
Remy Lebeau
@rlebeau
@robert010 have you monitored the network traffic on the sending side to make sure that packets are being sent correctly and in the desired time? Have you monitored the network traffic on the receiving side to make sure packets are being received?
robert010
@robert010
But it is the only simple way of broadcasting.. yes.. and no.. i have checked the sending side.
Remy Lebeau
@rlebeau
@robert010 and? were outgoing packets being sent correctly and in time? And no, there are other options, like multicasting
robert010
@robert010
My suspicion is that indy is not sending the packets out evenly spaced and the wireless router is throwing away udps when it needs to.
explain multicasting
Remy Lebeau
@rlebeau
@robert010 Indy passes the packets to the network stack as soon as you send them in code. Any delays woudl have to be on the OS layer
robert010
@robert010
could be.
is there a feedback on the os stack status out of indy
Remy Lebeau
@rlebeau
@robert010 no. Have you clocked the outgoing packet sends to see if any delays are occuring? Have you queried/tweaked the socket's outgoing buffer size at all? Is your sending machine doing other things at the time of sending that might take CPU time away from handling network requests?
robert010
@robert010
The problem is not in the sender or receiver, it is in the router with wireless. If I hook up one recv hardwired and the second wireless, and the sender is hardwired and that is all that are on the router, then the wireless one looses and jumps the wired one works.
Remy Lebeau
@rlebeau
@robert010 then get a faster router. Or maybe the issue is in the receiver's wireless, not the router's wireless (again, you should monitor the network traffic on the receiving side). Not much you can do about it in code, unless you play around with QOS settings to give your packets higher priority on the network.
robert010
@robert010
thats a good idea thanks
if you have a simple way of doing multiple tcp connections, I am all ears. Best I can think is to use a initial UDP to establish the active port number for a connection.
Remy Lebeau
@rlebeau
@robert010 why? Cant the sender act as a server and have the devices connect to it? You don't need UDP unless you are trying to discover a port dynamically, and you won't need that if the sender is a server and the devices are configured where to connect to.
In any case, do try multicasting first, that is better on network traffic than broadcasting since it is opt-in (receivers actively register with the network to receive packets) rather than "anyone want it?" (dumping packets on the network and anyone who happens to be listening can receive). That might make a difference in reducing router overhead and prioritizing packets, before you resort to switching to TCP
robert010
@robert010
when I look up multi-casting I can't find any good examples
Remy Lebeau
@rlebeau
@robert010 Indy has multicasting components - TIdIPMCastClient and TIdIPMCastServer