会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
技术文档 > VC文档 > 网络通讯
透析ICMP协议(二): Windows Socket 简介
发表日期:2003-04-17 00:00:00作者:b 出处:  

透析ICMP协议(二):

Windows Socket 简介

===============================

这篇文章出自bugfree/CSDN

平台: VC6 Windows XP

简介:

-------

Windows 的Socket函数有许多, 我没有做详细介绍, 这里的函数都是简要说明其用途, 详细用法请参考MSDN.

这里的主要目的是为了后面的三个应用服务.

函数说明:

---------

WSAStartup函数

初始化Winsock

[声明]

int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);

[参数]

wVersionRequested - 要求使用Winsock的最低版本号

lpWSAData - Winsock的详细资料

[返回值]

当函数成功调用时返回0

失败时返回非0的值

---

socket函数

用于生成socket(soket Descriptor)

[声明]

SOCKET socket(int af,int type,int protocol);

[参数]

af - 地址家族(通常使用:AF_INET)

type - socket的种类

SOCK_STREAM : 用于TCP协议

SOCK_DGRAM : 用于UDP协议

protocol - 所使用的协议

[返回值]

当函数成功调用时返回一个新的SOCKET(Socket Descriptor)

失败时返回INVALID_SOCKET.

---

inet_addr函数

地址转换, 把"A.B.C.D"的IP地址转换为32位长整数

[声明]

unsigned long inet_addr ( const char FAR *cp );

[参数]

cp - 指向IP地址字符串的指针

[返回值]

当函数成功调用时返回用32位整数表示的IP地址

失败时返回INADDR_NONE.

---

gethostbyname函数

从主机名获取主机信息.

[声明]

struct hostent FAR * gethostbyname ( const char FAR *name );

[参数]

name - 指向主机名字符串的指针

[返回值]

当函数成功调用时返回主机信息

失败时返回NULL(空值)

---

recv函数

利用Socket进行接受数据.

[声明]

int recv ( SOCKET s , char FAR *buf , int len , int flags );

[参数]

s - 指向用Socket函数生成的Socket Descriptor

buf - 接受数据的缓冲区(数组)的指针

len - 缓冲区的大小

flag - 调用方式(MSG_PEEK 或 MSG_OOB)

[返回值]

成功时返回收到的字节数.

如果连接被中断则返回0

失败时返回 SOCKET_ERROR

---

sendto函数

发送数据.

[声明]

int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );

[参数]

s - 指向用Socket函数生成的Socket Descriptor

buf - 接受数据的缓冲区(数组)的指针

len - 缓冲区的大小

flag - 调用方式(MSG_DONTROUTE , MSG_OOB)

to - 指向发送方SOCKET地址的指针

token - 发送方SOCKET地址的大小

[返回值]

成功时返回已经发送的字节数.

失败时返回SOCKET_ERROR

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00455