创建MFC应用程序
名字为TCP客户端程序
应用程序的类型为基本对话框
支持Windows Socket的功能
IDD_TCP_DIALOG
控件ID 控件类型 控件在实例中的作用
IDC_ADDR 编辑框控件 输入服务器IP地址
IDC_PORT 编辑框控件 输入服务器端口
IDC_TEXT 编辑框控件 显示相关信息
IDC_SENDTEXT 编辑框控件 输入发送信息
IDC_SEND 按钮控件 发送消息按钮
IDC_CONNECT 按钮控件 连接服务器
IDC_STATIC1 静态控件 标识服务器地址
IDC_STATIC2 静态控件 标识服务器端口
界面初始化
已经屏蔽了发送消息的功能
对于应用程序而言
避免了错误的发生
初始化代码
BOOL CTCPDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
//GetDlgItem(IDC_TEXT)->EnableWindow(false);
GetDlgItem(IDC_SENDTEXT)->EnableWindow(false);
GetDlgItem(IDC_SEND)->EnableWindow(false);
s=::socket(AF_INET,SOCK_STREAM,0); //创建套接字并返回句柄
:: WSAAsyncSelect(s,this->m_hWnd,WM_SOCKET, FD_READ);
return TRUE;