socket传送文件 客户端收到的文件和服务器端发送的不一样?解决办法

socket传送文件 客户端收到的文件和服务器端发送的不一样?
服务器向客户端发送文本文件,但在客户端收到的文件属性为“程序”

相关代码:
server

fd=open(filename,O_RDWR);
IF   (FD <0)
PRINTF( "CANNOT   OPEN   THE   FILE   %S\n ",strsrror(errno));
read(fd,sdbuf,sizeof(sdbuf));
send(nsockfd,sdbuf,sizeof(sdbuf),0);
printf(”%s ",sdbuf);

client

recv(sockfd,revbuf,sizeof(revbuf),0);
fd=open(filename,0_WRONLY|O_CREAT);
write(fd,revbuf,sizeof(revbuf));
printf( "%s ",revbuf);

但在客户端的终端可以显示传送的文本文件里面的内容,但客户端得到的那个文件根本没办法打开~
这是为什么呢?
谢谢大虾指教~~~

------解决方案--------------------
使用fwrite和fread看看