平台:windows10企业版,VS2013
1.工程建立,基于对话框,添加windows socket 支持
2.从CSocket派生出自定义监听SOCKET类SerSoc,建立对象
SerSoc::m_socket
注意概念:服务器的监听SOCKET永远只是用来接受连接请求。执行通信,即数据收发时使用的是通信SOCKET。
3.创建套接字
m_socket.create(server_port);
//主机IP地址由自身网络IP决定
4.监听
m_socket.listen();
5.SerSoc重写OnAccpet()函数,用于管理已连接的客户端的信息,将客户端通信套接字指针存入链表中管理。
需要提前创建自定义通信SOCKET类ConSoc(同样继承于CSocket)。
6.数据发送:
sock->Send(buf.data(), buf.size());注意数据类型的转换。(sock是ConSoc的对象指针)
7.数据接收:
重写ConSoc的OnReceieve
8.需要重写的函数及被调用时间说明
I. CSerSocket::OnAccept:
客户端发送连接请求时调用,可决定是否进行连接、对客户端进行管理等
II.CConSocket::OnSend:
当服务器和客户端成功建立好连接(即SerSocket::Accept()成功之后),
服务器的通信套接字自动调用此函数,以通知连接好的客户端可以使用Send()函数发送消息