《Windows网络编程 2》读书笔记(一)
来源:互联网 发布:js获取base64文件大小 编辑:程序博客网 时间:2024/05/16 10:38
Window的网络编程主要是利用WinSock,这是一种标准的API,注意它是编程接口,而不是网络协议。目前已经有两个版本WinSock1和WinSock2。在实际使用时必须包含相应的头文件和库,前者是Winsock.h, MSWsock.h/MSWsock.dll以及WSock32.lib,后者用Winsock2.h及WS2_32.LIB。
如果不想设置包含关系,可以在程序里面加上以下:
#pragma comment(lib, "ws2_32.lib")
使用WinSock之前必须初始化库,结束必须清理,以下是一个框架:
IP地址在WinSock中用SOCKADDR_IN结构体来描述。不同的计算机采用ig-endian和little-endian形式进行编号,例如Intel86处理器上,多字节编号用little-endian形式表示,即字节的排序是从最无意义的字节到最有意义的字节。
- 在计算机中把Ip地址和端口号指定成多字节时,是按主机字节(host-byte)顺序表示;
- 在网络上指定IP地址和端口号时指定多字节时,必须用big-endian形式,即网络字节(network-byte)顺序,也即从最有意义字节开始。
因此,在设置IP地址时,需要进行一下字节转换。有许多API函数可以用于此作用:
下面是将一个数从host-byte转换成network-byte: htonl, WSAHtonl, htons, WSAHtons
下面是逆向转换的:ntohl, ntohs, WSANtohl, WSANtohs
下面一段代码是演示如何绑定IP地址:
创建套接字:在Windows中,套接字与文件描述符不是一回事,是一个独立的类型,即SOCKET类型,其创建方法有两个函数:socket和WSASocket。
Socket socket(int af, int type, int protocol)
其中af设为AF_INET,type的类型对于Tcp来说是SOCK_STREAM,对于uDP来说是SOCK_DGRAM。Protocol的取值也有两个:IPPROTO_TCP或IPPROTO_UDP。
创建后,即要将端口与IP地址及端口绑定,可以用bind函数。
以下图形比较好的描述了通信双方的实现流程:
整体来说,第一章就是介绍了利用WinSOCK编程常用的一些API函数,这部分内容查阅MSDN即可。
- 《Windows网络编程 2》读书笔记(一)
- 《UNIX网络编程 卷2》读书笔记(一)
- 《UNIX网络编程 卷2》读书笔记(一)
- 《C++网络编程》读书笔记(一)
- VC++网络高级编程读书笔记 (一)
- 《Java网络编程》读书笔记(一)
- Unix网络编程读书笔记(一)
- windows网络编程(一)
- 《Windows核心编程》读书笔记(一)
- windows网络编程读书笔记1
- 《Unix网络编程》读书笔记(一)
- windows核心编程读书笔记一
- Windows网络编程一
- Windows网络编程(一)
- UNIX环境高级编程-读书笔记-网络编程(一)
- Windows网络编程总结(一)
- Windows网络编程总结(一)
- unix网络编程---读书笔记(一)---tcp/udp/sctp简介
- KDNuggets关于数据挖掘中处理过的最大数据量的调查(2009)
- 【王爽-汇编语言】第七章检测题分析
- 数据中心反注册
- Administrator用户直接获取SYSTEM权限
- bind9 dns智能解析 for windows 2003 master/slave dns配置
- 《Windows网络编程 2》读书笔记(一)
- Asp.Net结合JS在图层上显示记录信息
- File Dialog Example
- 界面主线程,子线程更新主界面控件
- Java基础很重要(四)---多线程
- SAPGUI中的命令行(OK-OCDE)中可敲入的命令
- 程序员到CTO必须注意的几个关键点
- UUID
- 解决:用showmodalDialog弹出aspx页面,该页面用来上传附件,点击上传如何不弹出新页面。