Visual C++网络编程经典案例详解 第2章 Winsock网络程序开发流程 TCP客户端程序

本文详细介绍了如何使用Visual C++创建TCP客户端程序,包括设置基本对话框应用,实现Windows Socket功能,控件初始化,连接服务器,发送和接收消息。通过OnConnect()和OnSend()函数处理用户交互,利用WSAAsyncSelect()实现异步套接字读取事件,并在OnSocket()函数中处理套接字事件。
摘要由CSDN通过智能技术生成

创建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;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值