#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string>
#include <stdio.h>
int main()
{
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in peeraddr;
peeraddr.sin_family = AF_INET;
inet_pton(AF_INET, "127.0.0.1", (sockaddr *)&peeraddr.sin_addr);
for(int port = 32768; port <= 65535; ++port)
{
peeraddr.sin_port = htons(port);
if(!connect(sockfd, (sockaddr *)&peeraddr, sizeof(peeraddr)))
{
printf("Self connection occur on port=%d\n", port);
break;
}
}
sleep(50);
close(sockfd);
return 0;
}
运行结果:
netstat查看状态:
抓包结果: