⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d070.bmp.txt

📁 Visual C++通信编程实例
💻 TXT
字号:
函数进行重载,用户可以在应用程序中很方便地对套接字发送、接收数据等事件进行处理。
3.2实例4:Winsock API编程技术——基于Winsock的聊天室程序
    为了让读者能快速、灵活地实现Winsock API编程,本节首先介绍Winsock API的基本
函数,然后以一个聊天室的实例来对这些知识进行总结,并在最后对该实例进行延伸和扩展,
将Winsock API封装成一个类,并基于该类重写了聊天室的程序,以便使读者能灵活运用。
3.2.1  Winsock基本的API
    主要的系统调用函数如下所示。
    ●socket():创建Socket。
    ●bind():将创建的Socket与本地端口绑定。
    ●connect():与accept()-建立Socket连接。
    ●listen():服务器监听是否有连接请求。
    ●send():数据的可控缓冲发送。
    ●recv():可控缓冲接收。
    ●closesocket():关闭Socket。
    以下便是Socket API的基本调用,附带的源码均为后续章节的核心代码。
    1.Winsock的启动
    Winsock是由DLL形式提供的模型,为了完成一系列初始化操作,每个Winsock的应
用程序都必须调用WSAStartup0.以建立与Windows Sockets DLL盼连接。
    WSAStartup的函数原型为:
    int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData);
    其中,wVersionRequested表示本程序所需要的最低版本号。lpWSAData返回WSADATA
结构,说明WinSock库当前的实现细节。
    该函数成功时返回0,否则可能返回如下一些错误码:
    ●WSASYSNOTREADY,表示底层网络系统未准备好。
    ●WSAVERNOTSUPPORTED,表示所要求版本号本实现不支持。
    ●WSAEINPROGRESS,表示一个阻塞性套接字操作未完成。
    ●WSAEPROCLIM,表示达到当前实现所支持的最大任务数。
    ●WSAEFAULT,表示lpWSAData是一个非法指针。
    一般用户可以不去关心实现细节,只要当前实现库满足最低版本需求即可。
    2.创建套接字
    每个套接字任务都从创建套接字开始。我们可以用socket函数来创建套接字,该函数的
原型为:    。
70
    SOCKET socket( int a£int type, int protocol)
其中,af为地址族..说明该socket支持的地址类型。我们可以在文件winsock2.h中找

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -