Page 1 of 1

Using two servers (HTTP and TELNET ports)

Posted: Thu Jan 05, 2023 12:07 am
by uTasker
Hi All

I need to have two TCP servers running. One on the HTTP port 80 and one on the Telnet port 23.

These commands are sent to create the servers:

at+cipmux=1
at+cipservermaxconn=5
at+cipserver=1,80
at+cipserver=1,23

All are acknowledged with OK.

I can now connect on TCP port 80 but connection attempts on TCP port 23 are answered with TCP RSTs (as if the server address is not being recognised).

If I then do
at+cipserver=0
to destroy the server(s), followed by
at+cipserver=1,23
the telnet port can connect.

If I start again and do
at+cipmux=1
at+cipservermaxconn=5
at+cipserver=1,23
at+cipserver=1,80

The telnet connection (23) works but not the HTTP one (80).

The behavior is as if the second server port setting is OKed but in fact ignored.
It is also as if only one server ever exists on only one port.

I can however connect multiple Telnet (23) connections, as shown by the status when 2 are connected:

+CIPSTATUS:0,"TCP","192.168.1.120",50801,23,1
+CIPSTATUS:1,"TCP","192.168.1.120",50835,23,1


Question:
- it is true that the ESP32-AT only supports a single listening TCP port?
- or is a different method needed to achieve more than one TCP port?

Finally, I will also require a UDP listener too.

Will this be possible?

Regards

Mark

Re: Using two servers (HTTP and TELNET ports)

Posted: Thu Jan 05, 2023 9:00 am
by ESP_Sun
uTasker wrote:
Thu Jan 05, 2023 12:07 am
Hi All

I need to have two TCP servers running. One on the HTTP port 80 and one on the Telnet port 23.

These commands are sent to create the servers:

at+cipmux=1
at+cipservermaxconn=5
at+cipserver=1,80
at+cipserver=1,23

All are acknowledged with OK.

I can now connect on TCP port 80 but connection attempts on TCP port 23 are answered with TCP RSTs (as if the server address is not being recognised).

If I then do
at+cipserver=0
to destroy the server(s), followed by
at+cipserver=1,23
the telnet port can connect.

If I start again and do
at+cipmux=1
at+cipservermaxconn=5
at+cipserver=1,23
at+cipserver=1,80

The telnet connection (23) works but not the HTTP one (80).

The behavior is as if the second server port setting is OKed but in fact ignored.
It is also as if only one server ever exists on only one port.

I can however connect multiple Telnet (23) connections, as shown by the status when 2 are connected:

+CIPSTATUS:0,"TCP","192.168.1.120",50801,23,1
+CIPSTATUS:1,"TCP","192.168.1.120",50835,23,1


Question:
- it is true that the ESP32-AT only supports a single listening TCP port?
- or is a different method needed to achieve more than one TCP port?

Finally, I will also require a UDP listener too.

Will this be possible?

Regards

Mark
Hi,

At present, the device can only create one TCP server and listen to one port at most, and cannot create two servers at the same time. However, one port of the TCP server and one client can use different ports to create multiple TCP connections (or different clients, of course).

If you need to create two server functions at the same time, you may need to customize the command to implement it. For how to customize the command at AT, please refer to the document: https://docs.espressif.com/projects/esp ... mands.html

OK is returned when the second server is created for the device. This is a known problem. Theoretically, it should return ERROR. This problem is currently being fixed internally.

The device can create TCP server (AT+CIPSERVER) and UDP transmission (AT+CIPSTART) at the same time.

Re: Using two servers (HTTP and TELNET ports)

Posted: Thu Jan 05, 2023 4:39 pm
by uTasker
Hi

Thank you for the information.

For the UDP case I need to have a TCP server and receive UDP data at the same time (in fact I don't actually need to "transmit" UDP data).
This probably means that it can't be done either with ESP-AT without customising it (?)

At the moment I am also trying to build the ESP-AT version for the ESP32-S2 (details in another recent thread) but this is failing due to bad parameter sin its build process. It may be because it can't be built with the newest IDF - can you confirm this before I de-install everything and start trying again?

Regards

Mark