1,在开发中应该根据具体情况,选择相应的windows sockets版本,导入wscok32.lib有两种方法:
头文件引用:
#pragma comment(lib,"wsock32.lib)
2.80是HTTP通信端口,21是FTP通信端口;
3,INVALID_SOCKET不是一个有效的套接字;
所以判断是否成功创建套接字的方法:
SOCKET s =socket(....);
If(INVALID_SOCKET==s)
{//失败}
4,从容关闭:一方即使关闭连接,但对方仍然可以读取网络堆栈中的数据。
5,广播数据是指某主机发出数据,局域网内的所有主机都能收到该数据,这个特征适用于面向无连接的协议。
一般情况下,路由器不会传播广播数据;
6,windows sockets提供了与协议无关的编程接口;每种协议都有一套不同的定址方案;
7,TCP和UDP协议通过IP协议传输数据,windows sockets通过AF_INET地址家族为IP通信定址;A代表address,F代表family
8,SOCKADDR_IN结构被用来指定IP地址和端口号;里面有个结构体
Struct in_addr sin_addr; //in_addr类型的IP地址
9,htonl()函数和htons()实现从主机字节顺序转换为网络字节顺序的功能;
H代表主机host,n代表net网络,l代表long,s代表short,to转换
10,开发windows sockets应用程序时,必须首先加载windows sockets 动态库(DLL),
WSAStartup()函数,必须调用的第一个函数;
IntWSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);
wVersionRequested:指定准备加载windows sockets动态库的版本,高字节指定所需要库文件的副版本,低字节指定主版本,在应用程序中使用MAKEWORD(X,Y),其中X是高位字节,Y是地位字节;
下面是一个仅支持windows sockets2.2版本的应用程序调用WSA
1万+



被折叠的 条评论
为什么被折叠?



