Yes, that is correct. I opened a new socket to new (random) port 50000 and then run nmap scan to ports 49998-50002.
No reply from ports except 50000 which sends RST. Wireshark log attached.
Nmap command:
nmap -p 49998-50002 -v -n --scan-delay 1ms -r 192.168.0.11
Nmap results:
49998/tcp filtered unknown
49999/tcp filtered unknown
50000/tcp closed ibm-db2
50001/tcp filtered unknown
50002/tcp filtered iiimsf
And this is the code I used for this test:
#include "lwip/sockets.h"
void socketTest()
{
struct sockaddr_in myAddr;
struct sockaddr_in toAddr;
struct timeval recvtimeout;
fd_set readfds;
UINT32 len = 0;
int retval = 0;
socklen_t slen = 0;
int socketHandle = -1;
UINT8 rxBuf[512];
socketHandle = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
myAddr.sin_family = AF_INET;
myAddr.sin_port = htons(50000);
myAddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (-1 != bind(socketHandle, (struct sockaddr* )&myAddr, sizeof(myAddr)))
{
while (1)
{
retval = 0;
slen = sizeof(struct sockaddr_in);
FD_ZERO(&readfds);
FD_SET(socketHandle, &readfds);
recvtimeout.tv_sec = 2;
recvtimeout.tv_usec = 0;
retval = select(socketHandle + 1, &readfds, NULL, NULL, &recvtimeout);
if (retval > 0 && FD_ISSET(socketHandle, &readfds))
{
len = recvfrom(socketHandle, &rxBuf[0], 512, 0, (struct sockaddr*
)&toAddr, &slen);
if (len > 0)
{
//...
}
}
}
}
}
Br,
Esa Hill
RST-from-UDP-port.pcapng
Description: RST-from-UDP-port.pcapng
_______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
