|
David, the accept() returns a NEW socket descriptor. You would then use that descriptor when sending/receiving to this new box. The sockaddr structure you pass is an ouput parm (output from the API). accept() puts the address information of the system requesting the connection. Also, this is a very good place to use threads...or something like them. That way each thread only has to worry about 1 connection. You then use cross thread communications to tell the thread from server2 that it has data from server1 to send. These comminations can happen via a combination of message queues (slow), data queues (fast), user queues (very fast) and/or mutex's. It all depends on the specific application requirements. It is possible to handle multiple sockets from a single thread/process, but I think it is easier to use separate threads. You mention that you are writing a "generic communications API (in RPGLE)". I would recommend that you write your api in ILE/C with a mind to being called by RPG (depending on target release, no return values, not "C style strings", etc.). Sockets are much easier to deal with in C. And the calling program does not know (or care) what language your stuff is written in. Regards, Bob Crothers Cornerstone Communications, LLC www.faxserver401.com another day done all targets met all systems fully operational all customers satisfied all staff keen and motivated all pigs fed and ready to fly... -----Original Message----- From: David Gibbs [SMTP:David.Gibbs@IL.US.MKS.com] Sent: Friday, April 30, 1999 11:12 AM To: 'Midrange Mailing List' Subject: TCP/IP Sockets -- maintaining multiple connections? Ok folks, here's a good one for ya... I'm in the process of writing a generic communications API (in RPGLE) that addresses the bsd sockets interface. Most of the sockets routines address the socket itself for identification, which I have no problem at all with. However, the accept() routine wants a socket AND server address. I have no particular problem providing the server address information... but how would I maintain MULTIPLE connections, to different servers, simultaneously (not actually at the same time... read from server 1, read from server 2, write to server 1, write to server 2, etc). I'm unsure as to how I should maintain the different server data structures. Any advice would be appreciated. david -- David Gibbs Sr. Software Engineer Mortice Kern Systems US, Inc. 2500 S. Highland Ave., Suite 200 Lombard, IL 60148 phone: (630) 495-2108 x5004 http://www.mks.com <http://www.mks.com/> mailto:dgibbs@mks.com <mailto:dgibbs@mks.com> Opinions expressed are strictly my own and do not necessarily reflect those of my employer. +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +--- +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.