10.5.1 Example: Accepting/Rejecting Socket Connection Request from Remote Client. Multi-Tech MTSMC-E, MTCBA-E-EN2, SocketModem EDGE, MultiModem rCell, MTCMR-E, MTCBA-E-U, MultiModem iCell, MTCBA-E, MultiModem EDGE
Advertisement
Advertisement
Chapter 10 – Internet Service Commands
• As in polling mode no error URCs are available you are advised to integrate the commands AT^SISI and
AT^SISE into the command sequences for upload and download jobs. So, the AT^SISO command may be followed by AT^SISI to check that the service has entered the <srvState>=4 before sending AT^SISR or
AT^SISW. This helps you to detect errors even though the "^SIS" URCs are disabled. A typical example is that the service fails to be opened because the service profile contains a wrong destination address. In such a case, after opening with AT^SISO and OK response, the service quickly enters the states <srvState>=2, 4 and
6, with an error being returned no earlier than after sending the first AT^SISR or AT^SISW command. In URC mode, an error URC, such as "Host not found" would be received in this situation, but in polling mode the only way to detect the state is using AT^SISI or, alternatively, AT^SISO.
• If the user rapidly closes and opens TCP/IP connections based on the embedded TCP/IP stack the service may display the error "No buffer space available", meaning that all TCP/IP socket resources are exhausted.
• In the worst case, opening further TCP/IP connections is locked for up to 60 seconds.
• The Socket Listener may not work properly if the service is re-opened shortly after having closed the Socket
Listener. To ensure that the service works correctly the host is required to wait at least two minutes before reopening a Listener.
10.5.1 Example: Accepting/Rejecting Socket Connection Request from Remote Client
Host 1 configured as Socket listener with IP address 10.10.0.187 at port 65534 is receiving a connection request from the remote client 10.10.0.185 (at port 1024). The example assumes that connection and service profiles have been created as stated earlier.
Start the Socket service in listener mode, then query the IP address dynamically assigned to the Socket listener: at^siso=4 at^siso?
Host 1 opens the Socket service.
Query the current status of all services. All service profiles are unused, except for service profile 4 which is running in listener mode, where
<srvState>=3 (listening) and <socketState>=3 (LISTENER). The response also indicates the IP address dynamically assigned to the listener. The listener’s access data (IP address and TCP port number) shall be passed on to the client.
^SISO: 0, “”
^SISO: 1, “”
^SISO: 2, “”
^SISO: 3, “”
^SISO: 4, “Socket”,”3”,”3”,”0”,”0”,”10.10.0.187:65534”,”0.0.0.0:0”
^SISO: 6, “”
^SISO: 7, “”
^SISO: 8, “”
^SISO: 9, “”
OK
Indication of incoming Socket connection request:
^SIS: 4, 1, 0 The URC indicates that the listener configured on service profile 4 is receiving a Socket connection request (<urcCause>=1) from the remote client. The last URC parameter <urcInfoId> represents the
ID of the dynamically assigned service profile, here 0. at^siso? Query the current status of services.
^SISO: 0, “Socket”,”2”,”4”,”0”,”0”,”10.10.0.187:0”,”10.10.0.185:1024” Indication on host 1 that the connection request from the remote client has been dynamically assigned to service profile 0 which is set to
Server mode (<socketState>=4).
^SISO: 1, “”
^SISO: 2, “”
^SISO: 3, “”
^SISO: 4, “Socket”,”3”,”3”,”0”,”0”, “10.10.0.187:65534”,”0.0.0.0:0”
^SISO: 6, “”
^SISO: 7, “”
^SISO: 8, “”
^SISO: 9, “”
OK
Multi-Tech Systems, Inc. AT Commands for EDGE Modems (S000371G)
147
Chapter 10 – Internet Service Commands
Host 1 accepts the Socket connection request: at^siso=0 Host 1 accepts the connection request, where 0 is the ID of the dynamically assigned service profile.
OK
^SISW: 0, 1 The URC indicates that data transmission to the remote client is at^siso? possible. If the remote client has already sent some data the additional URC ^SISR: 0,1 is displayed.
Query the current status of services.
^SISO: 0, “Socket”,”4”,”4”,”0”,”0”,”10.10.0.187:65534”,”10.10.0.185:1024” The socket connection between host 1 and remote client is successfully established.
^SISO: 1, “”
^SISO: 2, “”
^SISO: 3, “”
^SISO: 4, “Socket”,”3”,”3”,”0”,”0”,”10.10.0.187:65534”,”0.0.0.0:0”
^SISO: 6, “”
^SISO: 7, “”
^SISO: 8, “”
^SISO: 9, “”
OK
Host 1 rejects the Socket connection request: at^sisc=0 Host 1 rejects the connection request, where 0 is the ID of the dynamically assigned service profile.
OK at^siso?
^SISO: 0, “”
Query the current status of services.
The dynamically assigned service profile is free again. The Socket listener stays at <srvState>=3 (listening) and <socketState>=3
(LISTENER).
^SISO: 1, “”
^SISO: 2, “”
^SISO: 3, “”
^SISO: 4, “Socket”,”3”,”3”,”0”,”0”,”10.10.0.187:65534”,”0.0.0.0:0”
^SISO: 6, “”
^SISO: 7, “”
^SISO: 8, “”
^SISO: 9, “”
OK
Multi-Tech Systems, Inc. AT Commands for EDGE Modems (S000371G)
148
Download
Advertisement