Hello, I have a little question : is there a way to change the port of an EthernetServer during code runtime ?
Cf ChatServer example below
The server port is hardcoded to 23, but I wish to be able to change it during code runtime. Is there a simple way to do this ?
I'm working on Teensy 4.1 with Native Ethernet.
Cf ChatServer example below
Code:
#include <SPI.h>
#include <NativeEthernet.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network.
// gateway and subnet are optional:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);
IPAddress myDns(192, 168, 1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 0, 0);
// telnet defaults to port 23 ----> this is this port that we want to change during code runtime
EthernetServer server(23);
boolean alreadyConnected = false; // whether or not the client was connected previously
void setup() {
Ethernet.begin(mac, ip, myDns, gateway, subnet);
Serial.begin(9600);
while (!Serial) {
;
}
// Check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");
while (true) {
delay(1); // do nothing, no point running without Ethernet hardware
}
}
if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet cable is not connected.");
}
// start listening for clients
server.begin();
Serial.print("Chat server address:");
Serial.println(Ethernet.localIP());
}
void loop() {
// wait for a new client:
EthernetClient client = server.available();
// when the client sends the first byte, say hello:
if (client) {
if (!alreadyConnected) {
// clear out the input buffer:
client.flush();
Serial.println("We have a new client");
client.println("Hello, client!");
alreadyConnected = true;
}
if (client.available() > 0) {
// read the bytes incoming from the client:
char thisChar = client.read();
// echo the bytes back to the client:
server.write(thisChar);
// echo the bytes to the server as well:
Serial.write(thisChar);
}
}
}
The server port is hardcoded to 23, but I wish to be able to change it during code runtime. Is there a simple way to do this ?
I'm working on Teensy 4.1 with Native Ethernet.