Wi
Socket编程默认分类20091207103356阅读164评论0字号:大中小什么是Socket接触网络编程当然要了解Socket,Socket(套接字)是一种网络编程接口,Socket提供了很多灵活的函数,帮助程序员写出高效的网络应用。Socket分为BSDUNIX和wi
dows两个版本。在wi
32平台上的Wi
sock编程都要经过下列基本步骤:定义变量获得Wi
sock版本加载Wi
sock库初始化创建套接字设置套接字关闭套接字卸载Wi
sock库使用wi
sock2API编程,必须包含头文件wi
sock2h(链接环境WS2_32LIB),头文件wi
sockh(WSOCK32LIB)是为了兼容wi
sock1程序时使用的,另外mswsockh(MSWSOCKDLL)是微软的扩展类,用于开发高性能的wi
sock程序。准备好后,你就可以着手建立你的第一个网络程序了。二,Socket编程的基本过程
Socket通信分为面向连接的通信(TCP)和面向无连接的通信(UDP),通信流程如下:
f面向连接的通信
无连接的通信
1,Wi
sock初始化和结束每一个wi
sock应用程序必须首先加载相应的wi
sockdll版本。
f方法是调用:i
tWSAStartupWORDwVersio
Requested低字节主版本LPWSADATAlpWSAData充该结构。函数调用成功返回0结构指针,函数自动填库版本,高字节副版本,
可以用宏MAKEWORDxy用来指定第一个参数的值
2,建立套接字套接字是传输提供者的一个句柄。SOCKETsocketi
tafi
ttypei
tprotocol(如果不想指定)第一个参数指定通信协议的协议族,AF_INETIPv4或AF_INET6IPv6(因为Socket是网络编程接口而不是一个协议,它IPPROTO_TCP,IPPROTO_UDP,0
f使用流行的网络协议(TCPIP,IPX)为应用程序提供的一个编程接口。)第二个参数指定要创建的套接字的类型。SOCK_STREAMTCP流套接字SOCK_DGRAMUDP数据包套接字,SOCK_RAW原始套接字第三个参数指定应用程序所指定应用程序所使用的通信协议。函数成功返回套接字描述符,失败返回INVALID_SOCKET
3,配置套接字当创建一个套接字后,再进行网络通信之前,必须先配置Socket。面向连接的客户端Socket通过调用co
ect函数在Socket数据结构中保存地址和远端信息。无连接客户端,服务端以及面向连接Socket的服务端,通过调用bi
d函数来配置本地信息。i
tbi
dSOCKET的套接字co
ststructsockaddrFAR
ame的指针i
t大小
amele
地址缓冲区的指向地址缓冲区s创建
f成功返回0,失败返回SOCKET_ERROR当创建一个套接字后,套接字数据结构中有一个默认的IP地址和默认的端口号。一个服务程序必须调用bi
d函数来给其绑定一个IP地址和一个特定的端口号。第二个参数指定一个sockadr