int IpAddress;//判断域名或IP地址 int i=0; CString s;
m_ip.GetWindowText(s); IpAddress=inet_addr(s);
if(IpAddress==INADDR_NONE) { hostent * pHostent=gethostbyname(str); if(pHostent) IpAddress=(*(in_addr*)pHostent->h_addr).s_addr;
}
struct sockaddr_in desthost;
memset(&desthost,0,sizeof(desthost)); desthost.sin_family=AF_INET;
desthost.sin_addr.s_addr=IpAddress;
for(unsigned int a=m_port1;a if(nsend==SOCKET_ERROR) { MessageBox(\包发送失败!\ closesocket(soc); WSACleanup(); return; } Sleep(500); sockaddr_in SourceHost;//定义源主机地址 int SourceSize; SourceSize=sizeof(SourceHost); memset(&SourceHost,0,SourceSize); } char * RecvBuf; RecvBuf=new char[2]; memset(RecvBuf,0,2); int nRecv; nRecv=recvfrom(soc,RecvBuf,1,0,(struct sockaddr*)&SourceHost,&SourceSize); if(nRecv==SOCKET_ERROR) { int ErrorCode=GetLastError(); if(ErrorCode==10054) { str.Format(\ m_static+=\ m_static+=\ m_static+=\:Close\\r\\n\ } else { m_static+=\ m_static+=a; m_static+=\:Open\\r\\n\ } } } UpdateData(false); closesocket(soc); WSACleanup(); 5、实验结果 主界面显示: 测试1:验证起始端口不可以大于终止端口 测试2:TCP端口扫描 测试3:UDP端口扫描失败 测试3:UDP端口扫描 验证运行结果: 6、实验总结 通过本次试验我了解了使用Socket套接字对端口进行的扫描。进一步对TCP和UDP协议进行了学习。让我对网络编程产生了浓厚的兴趣!