Hi Bob,

I created a client-server business system for a client some years ago. It too uses data encryption. What I did on the server side was prep the data for net transfer (base64Encode it as the final prep step, I think), then transfer length(data) & CR & data.

On the client side, the app reads from the socket for 1 line (which goes into a variable, say "X"), then read from socket for X bytes. This keeps it simple - no need for special terminators etc - and seems to always work.

Phil Davis


On 4/5/20 12:51 PM, Bob Sneidar via use-livecode wrote:
Hi Kee. Thanks for the response.

I decided to go ahead and bypass the issue of the client and server being on 
the same device. I got my laptop out and created the server app there. I got it 
working as advertised.

[Technical stuff]
One thing I am doing is encrypting the data before sending it. The thing is, I 
needed a delimiter of some kind when reading the data back, because the data 
will be variable in length, and the end char will also be variable.

So what I did is I appended a termination character after the encrypted data 
before sending it, then stripped the termination on the server side before 
decrypting it. I do the same thing when sending data back. This has the effect 
of making any intercepted data in transit impossible to decrypt without knowing 
that there IS a terminator, what the terminator is, the encryption key and the 
seed! Even a brute force method would fail to decrypt the data.

I could get even fancier by sending two transmissions each way, the first being the 
randomized position and "poison pill" character that will be inserted into the 
encrypted data (itself encrypted), and a second the actual encrypted data. Even if the 
client and server stacks aren't password protected, there would be no way to anticipate 
what the poison pill character and position was.

I suppose I could use a web server with SSL certs, but first, I don’t know how, 
and second I would be adding the lag time for the web server to respond. Right 
now it's taking a little over 300 milliseconds for a simple string to return on 
a local area network

My goal is to create a client/server agent that I can securely send database 
queries to and get results back from.

Bob S


On Apr 5, 2020, at 11:55 AM, Kee Nethery via use-livecode 
<use-livecode@lists.runrev.com<mailto:use-livecode@lists.runrev.com>> wrote:

Here’s how this should work.

Server has an IP and port number that it listens on. Client sends a packet from 
the same IP and some random port.

Computer routes the packet and it doesn’t have to send the packet out on the 
net. It goes out the client port and back in to the server port.

Server replies from its port to the client port (client is waiting for a reply).

Try talking to your server with a browser on your computer and see what the 
server response looks like.

Kee Nethery

On Apr 5, 2020, at 11:22 AM, Bob Sneidar via use-livecode 
<use-livecode@lists.runrev.com<mailto:use-livecode@lists.runrev.com>> wrote:

Hi all.

I am creating a client/server socket based app and I am trying to develop both 
the client and server on the same workstation, and I am having difficulty. I 
*think* the issue is that the client and server cannot both be on the same 
system, but I’m not entirely sure. I’m asking the system to listen and also 
talk on the same port.

Anyone have any insight into this?

Bob S

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com<mailto:use-livecode@lists.runrev.com>
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode



_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to