TCP/IP编程之读数据

在TCP/IP网络编程中,TCP是一个字节流协议,数据接收可能无法一次性完成。本文探讨了如何处理recv函数可能分多次返回数据的问题,提出针对定长和变长数据的接收策略,包括在消息前添加消息头来指示数据长度。
摘要由CSDN通过智能技术生成

在win32平台编写网络应用程序的时候,我们一般都采用WinSOCKET库来实现,在具体编程时,比如编写一个TCP服务器程序,采用SOCKET相关的一些API函数很容易的就能实现,并且步骤固定,首先新建一个SOCKET对象,然后绑定端口,接着监听,等待接收连接,最后收发数据,这么一个过程大多数人可能都熟记于心了,但是具体应用的时候,一些编程的细节如何没处理好的话,带来的问题可能就没有那么简单了。接下来就谈一下关于网络编程中数据接收的问题。

首先我们要清楚一个很重要的概念:TCP是一个流协议,这意味着数据时作为字节流传递给接受者,没有内在的“消息”或“消息边界”的概念。

我们知道在TCP编程中对于数据接收采用的是函数是:

recv(s, buf, len, flags);

s:一个标识已连接套接字的描述字。
buf:用于接收数据的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值