请帮忙看这个端口扫描程序错在哪里!该如何处理
请帮忙看这个端口扫描程序错在哪里!!!
我用VC6.0编写了一个端口扫描的客户端程序,在运行之后碰到如下问题:
扫描程序很好地判断出指定tcp端口的开启状态,但扫描指定且已开启的udp端口时,给出的结果却是该端口已关闭.
请高手们帮帮忙,看看是否是recvfrom函数有问题??
消息处理函数的主要代码如下:
void CPortScannerClientDlg::OnButscan()
{
UpdateData();
AfxSocketInit(); //初始化套接字
char buffer[500+1];
//tcp 端口扫描
if(m_combo.GetCurSel()==0)
{
memset(buffer,0,500+1);
if (m_socket.Create(0,SOCK_STREAM, "192.168.0.226 "))
{
DWORD RemotePort=m_port;
if(m_socket.Connect(m_host,RemotePort))
{
m_list.AddString( "the target port is open! ");
m_list.AddString( "you can communicate with servernow! ");
m_socket.Close();
}
else
{
m_list.AddString( "sorry,the target port is close now! ");
m_socket.Close();
}
}
}
//udp 端口扫描
else
{
memset(buffer,0,500+1);
if(m_socket.Create(0,SOCK_DGRAM, "192.168.0.226 "))
{
DWORD RemotePort = m_port;
我用VC6.0编写了一个端口扫描的客户端程序,在运行之后碰到如下问题:
扫描程序很好地判断出指定tcp端口的开启状态,但扫描指定且已开启的udp端口时,给出的结果却是该端口已关闭.
请高手们帮帮忙,看看是否是recvfrom函数有问题??
消息处理函数的主要代码如下:
void CPortScannerClientDlg::OnButscan()
{
UpdateData();
AfxSocketInit(); //初始化套接字
char buffer[500+1];
//tcp 端口扫描
if(m_combo.GetCurSel()==0)
{
memset(buffer,0,500+1);
if (m_socket.Create(0,SOCK_STREAM, "192.168.0.226 "))
{
DWORD RemotePort=m_port;
if(m_socket.Connect(m_host,RemotePort))
{
m_list.AddString( "the target port is open! ");
m_list.AddString( "you can communicate with servernow! ");
m_socket.Close();
}
else
{
m_list.AddString( "sorry,the target port is close now! ");
m_socket.Close();
}
}
}
//udp 端口扫描
else
{
memset(buffer,0,500+1);
if(m_socket.Create(0,SOCK_DGRAM, "192.168.0.226 "))
{
DWORD RemotePort = m_port;