网络编程(整理完毕)

网络编程(整理完毕)

ID:41033048

大小:94.00 KB

页数:7页

时间:2019-08-14

网络编程(整理完毕)_第1页
网络编程(整理完毕)_第2页
网络编程(整理完毕)_第3页
网络编程(整理完毕)_第4页
网络编程(整理完毕)_第5页
资源描述:

《网络编程(整理完毕)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、孙新视频中关于网络编程的总结:SOCKET可以在同一区域的网套接字交换数据,也有可能跨区域通信,但是这只是在执行了某种转换进程后才能实现。Socket编程的前提条件:1.连接动态链接库ws2_32.lib2.头文件要求winsock2.h服务器的构建(TCP/IP)1.WSAStartup(赋值MSDN上的模板代码)2.调用SOCKET,得到一个套接字3.初始化一个结构体sockaddr/sockaddr_in,保存服务器端的网络信息4.调用BIND,绑定一个端口,必须要是1024以上的端口号5.调

2、用listen,把服务器设置为监听模式进入一个循环,等待客户端的请求1.调用accpet,接受客户端的请求2.调用send,发送一个消息给客户端3.调用recv,接受客户端发送过来的信息2.2高版本的是WSARecv()/WSASend()。详细使用见MSDN客户端的构建(TCP/IP)1.WSAStartup(赋值MSDN上的模板代码)2.调用SOCKET,得到一个套接字3.初始化一个SOCKADDR/SOCKADDR_IN的结构体,在结构体中设置要连接的服务器的网络信息4.调用connect连接

3、服务器5.使用send/recv(发送/接受)客户端的信息//注意,基于UDP的编程,使用sendto和recvfrom基于UDP的编程1.连接动态链接库ws2_32.lib2.头文件要求winsock2.h服务器的构建(TCP/IP)1.WSAStartup(赋值MSDN上的模板代码)2.调用SOCKET,得到一个套接字3.初始化一个结构体sockaddr/sockaddr_in,保存服务器端的网络信息4.调用BIND,绑定一个端口,必须要是1024以上的端口号。这是因为必须要告诉系统,要在哪个端

4、口接受数据。5.调用recvfrom/sendto接受/发送一个消息到客户端2.2高版本的是WSARecvfrom()/WSASendTo(),详细见MSDN客户端的构建(TCP/IP)1.WSAStartup(赋值MSDN上的模板代码)2.调用SOCKET,得到一个套接字3.初始化一个SOCKADDR/SOCKADDR_IN的结构体,在结构体中设置要连接的服务器的网络信息71.使用sendto/recvfrom(发送/接受)客户端的信息最后相同的步骤:1.调用closesocket()2.调用WS

5、ACleanup()异步套接字(要用到WINSOKET2,因此不能用MFC提供函数进行套接字的加载和版本协商):相关函数说明:注册要使用异步阻塞的消息WSAAsyncSelect(SOCKETs,HWNDhWnd,unsignedintwMsg,longlEvent)S:需要做异步阻塞的套接字hWnd:接受异步消息的窗口的句柄wMsg(自定义函数请看资料锦集):一个自定义消息。自定义消息需要带两个参数:WPARAMANDLPARAMlEvent:需要做异步处理的消息的一个异或集合。提供了消息机制的网

6、络事件选择,当使用它登记的网络事件发生时,Windows应用程序相应的窗口函数将收到一个消息,消息中指示了发生的网络事件,以及与事件相关的一些信息。原因:ThewParamparameteridentifiesthesocketonwhichanetworkeventhasoccurred.ThelowwordoflParamspecifiesthenetworkeventthathasoccurred.翻译:wParam消息确定了一个已经发生的网络事件,而低字节的lParam这个参数指向了这个已经

7、发生的网络事件。使用函数LOWORD(lParam)。WSAEnumProtocols(LPINTlpiProtocols,LPWSAPROTOCOL_INFOlpProtocolBuffer,ILPDWORDlpdwBufferLength)lpiProtocols:一个以NULL结尾的协议标识号数组。这个参数是可选的,如果lpiProtocols为NULL,则返回所有可用协议的信息,否则,只返回数组中列出的协议信息。lpProtocolBuffer,[out]:一个用WSAPROTOCOL_IN

8、FO结构体填充的缓冲区。WSAPROTOCOL_INFO结构体用来存放或得到一个指定协议的完整信息。lpdwBufferLength,[in,out]:在输入时,指定传递给WSAEnumProtocols()函数的lpProtocolBuffer缓冲区的长度;在输出时,存有获取所有请求信息需传递给WSAEnumProtocols()函数的最小缓冲区长度。这个函数不能重复调用,传入的缓冲区必须足够大以便能存放所有的元素。这个规定降低了该函数的复杂度,并且由于一个机器上装

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

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

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