|
使用流套结字,同时写了客户端和服务端,
现在的问题是,我把客户端和服务端同时在自己机器上测试, 传输没发现什么问题.
但是在两台不同的机器上运行客户端和服务端,
如果是传输pdf等文本文件,接收的文件没什么问题,
如果服务端接收到的文件是图片,第一次传过去不能浏览,
重传一遍就可以浏览了,但是图片内容与实际不相符,
图片显示时中间有条条框框.
在程序里面,在客户端文件每次发送8192个字节,
服务端每次从套结字中按照这个字节数进行读取再保存
不知道是不是在分开打包传输后接收时出了问题?
但是为什么在本机上却没有问题呢?
client端分隔文件发送部分代码:
[php]
#define BUF_SIZE 8192
...........
read_times = file_size /(BUF_SIZE) ;
read_left = file_size % (BUF_SIZE) ;
if(file_size>=BUF_SIZE)
for(i=1; i<=read_times; i++)
{
bzero(buffer,BUF_SIZE);
read(fd,buffer,BUF_SIZE);
write(s,buffer,BUF_SIZE);
}
bzero(buffer,BUF_SIZE);
read(fd,buffer,read_left);//read left data
write(s,buffer,read_left);//save left data
[/php]
server端接收部分代码:
[php]
if(file_size>=BUF_SIZE)
for(i=1; i<=read_times; i++)
{
bzero(buffer,BUF_SIZE);
read(ns,buffer,BUF_SIZE);
write(fd,buffer,BUF_SIZE);//save to the opened file
}
bzero(buffer,BUF_SIZE);
read(ns,buffer,read_left);//read left data
write(fd,buffer,read_left);//save left data
[/php]
各位帮看看 , 问题出在什么地方呢? |
|