📄 testdlg.cpp
字号:
else
{
if( !socSocks5.OpenSocket( pucIP, atoi( strProxyPort ), atoi( strLocalPort ) ) )
{
strProxyAlloPort.Format( "代理分配的端口:%d", socSocks5.GetProxyAlloPort() );
GetDlgItem(IDC_lblProxyAlloPort)->SetWindowText( strProxyAlloPort );
m_bOpen = true;
m_bUDPMode = false;
}
else
{
MessageBox( "UDP socket using socks 5打开失败!", "错误" );
return;
}
}
}
else
{
if( ((CButton*)GetDlgItem(IDC_chkGroup))->GetCheck() )
{
BYTE pucGroupIP[4];
if( ((CButton*)GetDlgItem(IDC_optRoot))->GetCheck() )
{
m_bGroupType = true;
}
else
{
m_bGroupType = false;
}
((CIPAddressCtrl*)GetDlgItem(IDC_ipGroup))->GetAddress(
pucGroupIP[0], pucGroupIP[1], pucGroupIP[2], pucGroupIP[3] );
if( !socUDP.OpenSocket( atoi( strLocalPort ), pucGroupIP, m_bGroupType ) )
{
m_bOpen = true;
m_bUDPMode = true;
m_bGroup = true;
}
else
{
MessageBox( "UDP socket打开失败!", "错误" );
return;
}
}
else
{
if( !socUDP.OpenSocket( atoi( strLocalPort ) ) )
{
m_bOpen = true;
m_bUDPMode = true;
m_bGroup = false;
CString strLocalIP;
int nLocalIP;
if( !socUDP.GetLocalIP( strLocalIP, nLocalIP ) )
{
TRACE( "\nIP:%s,Port:%d", strLocalIP, nLocalIP );
}
}
else
{
MessageBox( "UDP socket打开失败!", "错误" );
return;
}
}
}
GetDlgItem(IDC_lblMode)->EnableWindow( false );
GetDlgItem(IDC_optTCP)->EnableWindow( false );
GetDlgItem(IDC_optUDP)->EnableWindow( false );
GetDlgItem(IDC_chkGroup)->EnableWindow( false );
GetDlgItem(IDC_optRoot)->EnableWindow( false );
GetDlgItem(IDC_optLeaf)->EnableWindow( false );
GetDlgItem(IDC_lblGroup)->EnableWindow( false );
GetDlgItem(IDC_ipGroup)->EnableWindow( false );
GetDlgItem(IDC_chkProxy)->EnableWindow( false );
GetDlgItem(IDC_lblProxyIP)->EnableWindow( false );
GetDlgItem(IDC_ipProxy)->EnableWindow( false );
GetDlgItem(IDC_lblProxyPort)->EnableWindow( false );
GetDlgItem(IDC_txtProxyPort)->EnableWindow( false );
GetDlgItem(IDC_chkCheck)->EnableWindow( false );
GetDlgItem(IDC_lblProxyUser)->EnableWindow( false );
GetDlgItem(IDC_txtProxyUser)->EnableWindow( false );
GetDlgItem(IDC_lblProxyPass)->EnableWindow( false );
GetDlgItem(IDC_txtProxyPass)->EnableWindow( false );
GetDlgItem(IDC_btnOpen)->EnableWindow( false );
GetDlgItem(IDC_btnConnect)->EnableWindow( false );
GetDlgItem(IDC_btnListen)->EnableWindow( false );
}
void CTestDlg::OnBnClickedbtnsend()
{
BYTE pucIP[4];
BYTE *pucSend;
int nPos;
int nPort;
int nTextBytes;
int nSendBytes;
int nReturn;
CString strSend;
CString strPos;
CString strPort;
if( m_bOpen )
{
if( m_bSocMode )
{
if( m_bTCPMode )
{
GetDlgItem(IDC_txtSend)->GetWindowText( strSend );
nTextBytes = strSend.GetLength();
if( nTextBytes > 0 )
{
pucSend = new BYTE[nTextBytes];
}
else
{
return;
}
if( ((CButton*)GetDlgItem(IDC_optText))->GetCheck() )
{
memcpy( pucSend, strSend.GetBuffer( nTextBytes ), nTextBytes );
nSendBytes = nTextBytes;
}
else if( ((CButton*)GetDlgItem(IDC_optByte))->GetCheck() )
{
nSendBytes = GetBytesFromString( strSend, pucSend );
if( nSendBytes == -1 )
{
delete [] pucSend;
MessageBox( "传输的数据输入有误!" );
return;
}
}
else
{
delete [] pucSend;
MessageBox( "请先选择“数据模式”!" );
return;
}
GetDlgItem(IDC_txtSocSub)->GetWindowText( strPos );
nPos = atoi( strPos.GetBuffer(strPos.GetLength()) );
nReturn = socServe.SendData( nPos, pucSend, nSendBytes );
if( nReturn )
{
MessageBox( "服务socket发送数据失败!", "错误", MB_OK + MB_ICONSTOP );
}
delete [] pucSend;
}
else
{
GetDlgItem(IDC_txtSend)->GetWindowText( strSend );
nTextBytes = strSend.GetLength();
if( nTextBytes > 0 )
{
pucSend = new BYTE[nTextBytes];
}
else
{
return;
}
if( ((CButton*)GetDlgItem(IDC_optText))->GetCheck() )
{
memcpy( pucSend, strSend.GetBuffer( nTextBytes ), nTextBytes );
nSendBytes = nTextBytes;
}
else if( ((CButton*)GetDlgItem(IDC_optByte))->GetCheck() )
{
nSendBytes = GetBytesFromString( strSend, pucSend );
if( nSendBytes == -1 )
{
delete [] pucSend;
MessageBox( "传输的数据输入有误!" );
return;
}
}
else
{
delete [] pucSend;
MessageBox( "请先选择“数据模式”!" );
return;
}
nReturn = socClient.SendData( pucSend, nSendBytes );
if( nReturn )
{
MessageBox( "客户socket发送数据失败!", "错误", MB_OK + MB_ICONSTOP );
}
delete [] pucSend;
}
}
else
{
if( m_bUDPMode )
{
GetDlgItem(IDC_txtSend)->GetWindowText( strSend );
nTextBytes = strSend.GetLength();
if( nTextBytes > 0 )
{
pucSend = new BYTE[nTextBytes];
}
else
{
return;
}
if( ((CButton*)GetDlgItem(IDC_optText))->GetCheck() )
{
memcpy( pucSend, strSend.GetBuffer( nTextBytes ), nTextBytes );
nSendBytes = nTextBytes;
}
else if( ((CButton*)GetDlgItem(IDC_optByte))->GetCheck() )
{
nSendBytes = GetBytesFromString( strSend, pucSend );
if( nSendBytes == -1 )
{
delete [] pucSend;
MessageBox( "传输的数据输入有误!", "错误", MB_OK + MB_ICONSTOP );
return;
}
}
else
{
delete [] pucSend;
MessageBox( "请先选择“数据模式”!", "错误", MB_OK + MB_ICONSTOP );
return;
}
if( m_bGroup )
{
nReturn = socUDP.SendData( pucSend, nSendBytes );
}
else
{
((CIPAddressCtrl*)GetDlgItem(IDC_ipRemote))->GetAddress(
pucIP[0], pucIP[1], pucIP[2], pucIP[3] );
GetDlgItem(IDC_txtRemotePort)->GetWindowText( strPort );
nPort = atoi( strPort.GetBuffer(strPort.GetLength()) );
nReturn = socUDP.SendData( pucIP, nPort, pucSend, nSendBytes );
}
if( nReturn )
{
MessageBox( "客户socket发送数据失败!", "错误", MB_OK + MB_ICONSTOP );
}
delete [] pucSend;
}
else
{
GetDlgItem(IDC_txtSend)->GetWindowText( strSend );
nTextBytes = strSend.GetLength();
if( nTextBytes > 0 )
{
pucSend = new BYTE[nTextBytes];
}
else
{
return;
}
if( ((CButton*)GetDlgItem(IDC_optText))->GetCheck() )
{
memcpy( pucSend, strSend.GetBuffer( nTextBytes ), nTextBytes );
nSendBytes = nTextBytes;
}
else if( ((CButton*)GetDlgItem(IDC_optByte))->GetCheck() )
{
nSendBytes = GetBytesFromString( strSend, pucSend );
if( nSendBytes == -1 )
{
delete [] pucSend;
MessageBox( "传输的数据输入有误!", "错误", MB_OK + MB_ICONSTOP );
return;
}
}
else
{
delete [] pucSend;
MessageBox( "请先选择“数据模式”!", "错误", MB_OK + MB_ICONSTOP );
return;
}
((CIPAddressCtrl*)GetDlgItem(IDC_ipRemote))->GetAddress(
pucIP[0], pucIP[1], pucIP[2], pucIP[3] );
GetDlgItem(IDC_txtRemotePort)->GetWindowText( strPort );
nPort = atoi( strPort.GetBuffer(strPort.GetLength()) );
nReturn = socSocks5.SendData( pucIP, nPort, pucSend, nSendBytes );
if( nReturn )
{
MessageBox( "客户socket发送数据失败!", "错误", MB_OK + MB_ICONSTOP );
}
delete [] pucSend;
}
}
GetDlgItem(IDC_txtSend)->SetFocus();
GetDlgItem(IDC_txtSend)->SetWindowText( "" );
}
else
{
MessageBox( "请先打开Socket!", "错误", MB_OK + MB_ICONSTOP );
}
}
void CTestDlg::OnBnClickedbtnclosesocket()
{
if( m_bOpen )
{
if( m_bSocMode )
{
if( m_bTCPMode )
{
socServe.CloseSocket();
}
else
{
socClient.CloseSocket();
}
}
else
{
if( m_bUDPMode )
{
socUDP.CloseSocket();
}
else
{
socSocks5.CloseSocket();
}
}
m_bOpen = false;
GetDlgItem(IDC_lblMode)->EnableWindow( true );
GetDlgItem(IDC_optTCP)->EnableWindow( true );
GetDlgItem(IDC_optUDP)->EnableWindow( true );
GetDlgItem(IDC_lblTCPMode)->EnableWindow( true );
GetDlgItem(IDC_optServe)->EnableWindow( true );
GetDlgItem(IDC_optClient)->EnableWindow( true );
if( !((CButton*)GetDlgItem(IDC_chkProxy))->GetCheck() )
{
GetDlgItem(IDC_chkGroup)->EnableWindow( true );
if( ((CButton*)GetDlgItem(IDC_chkGroup))->GetCheck() )
{
GetDlgItem(IDC_optRoot)->EnableWindow( true );
GetDlgItem(IDC_optLeaf)->EnableWindow( true );
GetDlgItem(IDC_lblGroup)->EnableWindow( true );
GetDlgItem(IDC_ipGroup)->EnableWindow( true );
}
else
{
GetDlgItem(IDC_optRoot)->EnableWindow( false );
GetDlgItem(IDC_optLeaf)->EnableWindow( false );
GetDlgItem(IDC_lblGroup)->EnableWindow( false );
GetDlgItem(IDC_ipGroup)->EnableWindow( false );
}
}
if( !((CButton*)GetDlgItem(IDC_chkGroup))->GetCheck() )
{
GetDlgItem(IDC_chkProxy)->EnableWindow( true );
if( ((CButton*)GetDlgItem(IDC_chkProxy))->GetCheck() )
{
GetDlgItem(IDC_lblProxyIP)->EnableWindow( true );
GetDlgItem(IDC_ipProxy)->EnableWindow( true );
GetDlgItem(IDC_lblProxyPort)->EnableWindow( true );
GetDlgItem(IDC_txtProxyPort)->EnableWindow( true );
GetDlgItem(IDC_chkCheck)->EnableWindow( true );
if( ((CButton*)GetDlgItem(IDC_chkCheck))->GetCheck() )
{
GetDlgItem(IDC_lblProxyUser)->EnableWindow( true );
GetDlgItem(IDC_txtProxyUser)->EnableWindow( true );
GetDlgItem(IDC_lblProxyPass)->EnableWindow( true );
GetDlgItem(IDC_txtProxyPass)->EnableWindow( true );
}
else
{
GetDlgItem(IDC_lblProxyUser)->EnableWindow( false );
GetDlgItem(IDC_txtProxyUser)->EnableWindow( false );
GetDlgItem(IDC_lblProxyPass)->EnableWindow( false );
GetDlgItem(IDC_txtProxyPass)->EnableWindow( false );
}
}
else
{
GetDlgItem(IDC_lblProxyIP)->EnableWindow( false );
GetDlgItem(IDC_ipProxy)->EnableWindow( false );
GetDlgItem(IDC_lblProxyPort)->EnableWindow( false );
GetDlgItem(IDC_txtProxyPort)->EnableWindow( false );
GetDlgItem(IDC_chkCheck)->EnableWindow( false );
GetDlgItem(IDC_lblProxyUser)->EnableWindow( false );
GetDlgItem(IDC_txtProxyUser)->EnableWindow( false );
GetDlgItem(IDC_lblProxyPass)->EnableWindow( false );
GetDlgItem(IDC_txtProxyPass)->EnableWindow( false );
}
}
GetDlgItem(IDC_btnOpen)->EnableWindow( true );
GetDlgItem(IDC_btnConnect)->EnableWindow( true );
GetDlgItem(IDC_btnListen)->EnableWindow( true );
}
}
void CTestDlg::OnBnClickedBtnOpenftp()
{
if (m_dlgFtp.m_hWnd == NULL)
{
m_dlgFtp.Create(IDD_DLG_FTP);
}
m_dlgFtp.ShowWindow(SW_SHOW);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -