(Okay, now you're prepared...)

I need to write a little program that opens and maintains a TCP socket connection to a server across the Internet. This little program would wait for messages from the server it's connected to, then record those messages and send a kinda of acknowledgment "Got it".

I've written a fair amount of PHP scripts for web sites, but nothing that would run in the background, independently say of a web browser or server. In other words, I don't really know what I'm doing, or where to start. I've looked at PHP.net's socket docs, but everything seems to scream experimental, use at own risk, etc. This little program, while operationally simple, needs to be very reliable. For example, if the socket connection dies for some reason, it would know to open a new one. Or if the server doesn't acknowledge my little program's periodic "Hey, you still there"-type pings, it would close the connection and reopen a new one. (In fact, at the end of this message I'll list the basic operation and flow of the little program as stated by the company running the server to which I would connect.)

In any case, what I want to know is, can this be done with PHP on a run-of-the-mill PHP-savvy ISP? Or would I need something more configurable? Would I need to learn C and compile a UNIX program to do this? Any ideas where to start? Resources, links? Anything would be much appreciated.... Thanks very much in advance.

Here is how the little program should function, according to the Company:

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

The following describes the basic operation and flow needed within the DC:

Setup and open tcp socket using IP address and port number13
Send a Password_DS to the DS
Send a Resend_DS to the DS
Enter infinite loop:
        Wait for messages from the DS
        Upon receipt of a Send_DS from the DS
                Store message contents appropriately
                Send a Send_DS_Ack to the DS
                Send message contents to other CSP applications
        Upon receipt of a Ping_DS
                Respond with a Ping_DS_Ack
        Upon receipt of a Status_DS
                Respond with a Status_DS_Ack
                If needed, send message to other CSP process(es)
        Periodically, send a Ping_DS to the DS
                If the Ping_DS transmit fails
                        Clean-up and restart the socket connection
                If a Ping_DS_Ack is not received from the DS
                        Clean-up and restart the socket connection

In this sequence, the data formats for the messages must follow the requirements
shown earlier. I.e., the Startup_DS message must include the correct client type;
the Send_DS_Ack messages must include the hostID and sequenceID data, etc. The
data contents received by the DC will usually be formatted and forwarded to
other CSP-internal procedures for further processing.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

...Rene


-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to