socket问题2

在进行socket通讯是。。。当你在server端不断的进行数据写时。。你在client端不断的读。。但是你在client端用read读的时侯,你每次读取的数据的大小不能够确定。。
请问有那个函数可以准确的控制你每次读取的数据的大小?
还有我在用read读数据时。我发现每次读的最大数据为1448位。请问这是为何?
对函数int read(int sockfd,char *buf,int len)的理解
是否是读取len字节存储到buf中?