您的位置:首页 > 理论基础 > 计算机网络

Windows网络编程

2007-05-22 23:56 393 查看

一、Winsock初始化

每个Winsock程序都必须加载合适的Winsock DLL版本,现有winsock1,winsock2。在调用Winsock之前首先的工作就是加载winsock相应的库。
加载所用的API是WSAStartup
当应用程序结束之后,关闭的API是WSACleanup

WSAStartup需要一个版本号信息及一个WSADATA的结构体作为函数的返回值。它的原型是这样的:

int WSAStartup(WORD wVersionRequested,
LPWSADATA lpWSAData);
下面, 看一下WSAData结构体究竟描述了些什么信息:


typedef struct WSAData
#include "winsock2.h"
int main()
struct sockaddr_in

还有一些其它的函数,可以很方便的进行IP地址至字符串形式,32位整行形式 in_addr结构体形式的转换。还有的,可以把本地字节顺序与网络字节顺序进行转换
1.把一个点分IP转换成一个32位无符号长整型:
unsigned long inet_addr(const char FAR* cp);
2.将主机字节顺序转换为网络字节顺序
u_long htonl(u_long hostlong);
int WSAHtonl(SOCKET s, u_long hostlong, u_long FAR* lpnetlong);
u_short htons(u_short hostshort);
int WSAHtons(SOCKET s,u_short hostshort, u_short FAR* lpnetshort);
 以上有不同的只是有些字节需要转换为long型,比如IP地址,有些只需要short型就可以了,比如PORT号.
 而与上面逆向的函数则有:
u_long ntohl(u_long netlong);
int WSANtohl(SOCKET s, u_long netlong, u_long FAR* lphostlong);
//关于short型的,这里略

三、创建套接字

四、服务器需要调用的的函数及步骤

五、客户端需要调用的函数及步骤

六、数据传输与接收

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: