有关socket网络编程中一些概念的理解

有关socket网络编程中一些概念的理解

 

所谓服务器即提供服务器的一端。换句话那个设备具有提供服务的能力那么这台设备就应该是服务器。

所谓客户端即需要被服务的一端。换句话那个设备不能自己实现需要的功能必须通过网络或其他通信请求其他设备提供服务的就是客户端。

一个系统中不一定说客户端多,而服务器少,完全有可能服务器多而客户端少。

 

长连接:客户端与服务器先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。

短连接:客户端与服务器每进行一次报文收发交易时,才进行通讯连接,交易完毕后就立即断开连接。这中方法比较适用于一点对多点的通信。

 

对与send函数,不要指望它一次就能把你需要发送的数据给发送完成,可能需要多次发送。

对于recv函数,不要指望它可以一次把您需要接收的数全部给你接收完成,可能需要多次接收。

 

在连续的数据传输过程中不要使用能不能接收到数据长度为零来判断某一次传输是否结束,需要你自己增加结束标志。

 

可参考的代码有:

发送代码:

while(iSendLen < iDataLen)

       {

              if((iRes = send(sock,cSendData + iSendLen,iDataLen-iSendLen,0)) > 0)

              {

                     iSendLen += iRes;

              }

              else

              {

                     goto Error;

              }

       }

接收代码:

。。。

       while(iRecvLen < iDataLen)

       {

              if((iRes = recv(sock, cData+ iRecvLen,iDataLen - iRecvLen,0))>0)

              {

                     iRecvLen += iRes;

              }

              else

              {

                     goto Error;

              }

       }

。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值