欢迎来到天天文库
浏览记录
ID:37714075
大小:16.66 KB
页数:4页
时间:2019-05-29
《winsock的函数说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Winsock函数用法说明WSAStartup()连结应用程序与Winsock.DLL的第一个函数。格式: intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData)参数: wVersionRequested欲使用的WindowsSocketsAPI版本 lpWSAData指向WSADATA资料的指标传回值: 成功-0 失败-WSASYSNOTREADY/WSAVERNOTSUPPORTED/WSAEINVAL说明: 此函数「必须」是应用程序呼叫到WindowsSocketsDLL函数中的第一个函数呼叫成功后,才可
2、以再呼叫其他WindowsSocketsDLL的函数。此函数亦让使用者可以指定要使用的WindowsSocketsAPI版本,及获取设计者的一些信息。socket()建立Socket。格式: SOCKETsocket(intaf,inttype,intprotocol)参数: af目前只提供PF_INET(AF_INET) typeSocket的型态(SOCK_STREAM、SOCK_DGRAM) protocol通讯协定(如果使用者不指定则设为0)传回值: 成功-Socket的识别码 失败-INVALID_SOCKET(呼叫WSAGetLastError()可得知
3、原因)说明: 此函数用来建立一Socket,并为此Socket建立其所使用的资源。Socket的型态可为StreamSocket或DatagramSocket。bind()指定Socket的Local地址(Address)。格式: intbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);参数: sSocket的识别码 nameSocket的地址值 namelenname的长度传回值: 成功-0 失败-SOCKET_ERROR(呼叫WSAGetLastError()可得知原因)说明: 此一函数是指定Local
4、地址及Port给某一未定名之Socket。使用者若不在意地址或Port的值,那麽他可以设定地址为INADDR_ANY,及Port为0;那么WindowsSockets会自动将其设定适当之地址及Port(1024到5000之间的值),使用者可以在此Socket真正连接完成后,呼叫getsockname()来获知其被设定的值。bind()函数要指定地址及port,这个地址必须是执行这个程序所在机器的IP地址,所以如果读者在设计程序时可以将地址设定为INADDR_ANY,这样Winsock系统会自动将机器正确的地址填入。如果您要让程序只能在某台机器上执行的话,那么就将地址设定为该台机
5、器的IP地址。由於此端是Server端,所以版主们一定要指定一个port号码给这个socket。listen()设定Socket为监听状态,准备被连接。格式: intlisten(SOCKETs,intbacklog);参数: sSocket的识别码 backlog未真正完成连接前(尚未呼叫accept前)彼端的连接要求的最大个数传回值: 成功-0 失败-SOCKET_ERROR(呼叫WSAGetLastError()可得知原因)说明: 使用者可利用此函数来设定Socket进入监听状态,并设定最多可有多少个在未真正完成连接前的彼端的连接要求。(目前最大值限制为5,最
6、小值为1)connect()要求连接某一TCPSocket到指定的对方。格式: intconnect(SOCKETs,conststructsockaddrFAR*name,intnamelen);参数: sSocket的识别码 name此Socket想要连接的对方地址 namelenname的长度传回值: 成功-0 失败-SOCKET_ERROR(呼叫WSAGetLastError()可得知原因)说明: 此函数用来向对方要求建立连接。若是指定的对方地址为0的话,会传回错误值。当连接建立完成后,使用者即可利用此一Socket来做传送或接收资料之用了。accept(
7、)接受某一Socket的连接要求,以完成StreamSocket的连接。格式: SOCKETaccept(SCOKETs,SOCKADDR*addr,intFAR*addrlen)参数: sSocket的识别码 addr存放来连接的彼端的地址 addrlenaddr的长度传回值: 成功-新的Socket识别码 失败-INVALID_SOCKET(呼叫WSAGetLastError()可得知原因)说明: Server端的应用程序呼叫此一函数来接受Client端要求的Socket连
此文档下载收益归作者所有