Windows的网络编程-之二-面向连接的协议

本文详细介绍了Windows下面向连接的网络协议编程,包括服务器端的bind、listen、accept函数,客户端的connect函数,以及数据传输的send、recv函数和关闭连接的shutdown、closesocket函数。面向连接的协议确保了数据的可靠传输,适用于TCP等流式协议。
摘要由CSDN通过智能技术生成

1      面向连接的协议

1.1     服务器端函数

1.1.1   bind( )

一旦为某种特定协议创建了套接字,就必须将套接字绑定到一个已知地址:

intbind(  SOCKET s,  const struct sockaddr* addr,  int addrlen );

1.1.2   listen( )

第二步是将套接字置入监听模式:

intlisten(  SOCKET s,  int backlog );

参数backlog指定了可以等待连接的最大队列长度。

1.1.3   accept( )和WSAAccept( )

通过accpet( )和WSAAccept(),可以为等待连接队列中的第一个连接请求提供服务。

SOCKETaccept(  SOCKET s,  struct sockaddr* addr,  int* addrlen );

SOCKETWSAAccept(  SOCKET s,  struct sockaddr* addr,   int* addrlen,

LPCONDITIONPROClpfnCondition,  DWORD dwCallbackData);

参数addr返回发出连接请求的客户机的IP地址信息,而参数addrlen则返回参数addr的长度。

accept( )的返回值是一个新的套接字描述符,对于该客户机后续的所有操作,都使用这个新的套接字。原来的监听套接字仍然处于监听模式,用于接受其他客户机连接。

参数lpfnCondition指定一个回调函数,用于服务器收到连接请求后的处理,定义如下:

intCALLBACK ConditionFunc(  LPWSABUF             lpCallerId,                 IN

LPWSABUF              lpCallerData,            IN

LPQOS                 lpSQOS,                    IN/OUT

LPQOS                 lpGQOS,                   IN/OUT

LPWSABUF              lpCalleeId,           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值