server.c和client.c的头文件
<sys/types.h>
<sys/socket.h>
<unistd.h>
<string.h>
<netinet.h>
<stdio.h>
<stdlib.h>
server.c的代码如下
-----------------------------------------------------------------------------------------------
client.c的代码如下:
上面程序中,server.c和client.c中的缓存区故意设置不一样大,为了检验从服务器读取数据是否正常。使用如下方式来编译和运行程序
$gcc -o server server.c
$gcc -o client client.c
$./server
另起一个终端
$./client "hello server, this a test!"
可见,上面发送的一句话大小超过了10字节,但是小于30-1字节,如果大于30-1字节将出现问题,缓存区溢出了。由于有一个结束符'/0',所以只能是30-9个字符。