网络编程经典入门_免费下载

网络编程经典入门_免费下载

ID:40726849

大小:120.74 KB

页数:81页

时间:2019-08-06

网络编程经典入门_免费下载_第1页
网络编程经典入门_免费下载_第2页
网络编程经典入门_免费下载_第3页
网络编程经典入门_免费下载_第4页
网络编程经典入门_免费下载_第5页
资源描述:

《网络编程经典入门_免费下载》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、CSDN-技术频道-文档中心-VisualC++标题windows网络编程经典入门caiyi9000(原作)关键字socket对于一个windows网络编程初学者,下面方法是经典入门。初学者建议不要用MFC提供的类,而用windowsAPI做一个简单服务器和客户端,这样有助于对socket编程机制的理解。为了简单起见,应用程序是基于MFC的标准对话框。Winsock用WINDOWSAPI实现:(1)服务器端有两个线程:主线程—你需要编写以下函数来实现#defineNETWORK_EVENTUSER_MESSAGE+10

2、0file://定义网络事件sockaddr_inclientaddr;file://暂时存放客户端IP地址file://自己定义消息映射函数,将上面定义的网络事件映射到处理函数file://OnNetEvent为网络事件处理函数,它在下面定义ON_MESSAGE(NETWORK_EVENT,OnNetEvent);在你对话框中的初始化函数中调用下面的初始化网络的子函数BOOLInitNetwork()file://初始化网络{file://初始化TCP协议BOOLret=WSAStartup(MAKEWORD(2,2

3、),&wsaData);if(ret!=0){MessageBox("初始化套接字失败!");returnFALSE;}file://创建服务器端套接字SOCKETserverSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(serverSocket==INVALID_SOCKET){MessageBox("创建套接字失败!");closesocket(m_Socket);WSACleanup();returnFALSE;}file://绑定到本地一个端口上sockad

4、dr_inlocaladdr;localaddr.sin_family=AF_INET;localaddr.sin_port=htons(1688);localaddr.sin_addr.s_addr=0;if(bind(serverSocket,(conststructsockaddr*)&localaddr,sizeof(sockaddr))==SOCKET_ERROR){MessageBox("绑定地址失败!");closesocket(m_Socket);WSACleanup();returnFALSE;}fi

5、le://注册网络异步事件,m_hWnd为应用程序的主对话框或主窗口的句柄WSAAsyncSelect(serverSocket,m_hWnd,NETWORK_EVENT,FD_ACCEPT

6、FD_CLOSE

7、FD_READ

8、FD_WRITE);listen(serverSocket,5);file://设置侦听模式returnTRUE;}file://定义网络事件的响应函数voidOnNetEvent(WPARAMwParam,LPARAMlParam){file://调用API函数,得到网络事件类型intiEven

9、t=WSAGETSELECTEVENT(lParam);file://得到发出此事件的客户端套接字SOCKETpSock=(SOCKET)wParam;switch(iEvent){caseFD_ACCEPT:file://客户端连接请求{OnAccept();break;}caseFD_CLOSE:file://客户端断开事件:{OnClose(pSock);break;}caseFD_READ:file://网络数据包到达事件{OnReceive(pSock);break;}caseFD_WRITE:file://

10、发送网络数据事件{OnSend(pSock);break;}default:break;}}voidOnAccept(SOCETpSock)file://响应客户端连接请求函数{intlen=sizeof(sockaddr);file://调用API函数,接受连接,并返回一个新套接字file://还可以获得客户端的IP地址SOCKETclientSocket=accept(serverSocket,(structsockaddr*)&clientaddr,&len);file://为新的socket注册异步事件,注意没

11、有Accept事件if(WSAAsyncSelect(clientSocket,m_hWnd,IP_EVENT,FD_CLOSE

12、FD_READ

13、FD_WRITE)==SOCKET_ERROR){MessageBox("注册异步事件失败!");return;}file://自编函数,将此客户端的相关信息保存下来:套接字、//IP地

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。