I am using an Arduino shield with W5100 chip. Once I assign a MAC address and IP address and start Ethernet with Ethernet.begin(), the W5100 starts accepting incoming connections. This is before server started on a selected TCP port. Instead of getting an immediate “Connection refused” message, attempting to connect with a terminal (e.g. PuTTY) will result in a terminal window opening and staying open for a couple of minutes or so before eventually timing out. It does not appear possible to send or receive data over the connection but the behavior is unexpected.
Further, if a server is started on a specific TCP port, a client connecting to it will be able to exchange data as expected. However, if the port is then closed, or changed while the terminal is still connected, the connection is not dropped, but remains open although data transfer seems no longer possible.