2.找到该路径下的目录内容调用os的listdir()方法,返回的是一个列表的形式,必须将其格式化为字符串
3.目录内容格式化为字符串,需要用某个字符去作为分隔符,再用分隔符.join()的方法将列表转为指定分隔符分隔的字符串
4.到达客户端时,输出split()按某个特定分隔符分隔后的列表即可输出目录内容
5.服务器端的返回上一级目录时,其原理是去掉当前路径的路径名,如c:/test/111,要返回到test则需要去掉114
6.依据第五点的原理,需要将当前路径按windows的分隔符进行分隔,但是此方法分隔成列表后列表最后一个元素返禅和会多出一个空格,
所以去掉路径名的同时也漏盯需要去掉空格,即在split()后加上[:-2]即可(去掉列表最后的两个元素)袭哪
如果是自己设计的网络编程传输,因为socket缓冲区大小和应用层接收速度不一致,就会导致部分数据还没接受完,下一部分数据又到来。可以设计一个方法来确保数据一致则租。
网页链接
typedef struct
{
int len //buf里面存放的数据长度
char buf[128]
}data,*pdada
先发送服务器端读文件会返回读到的字节数,先给客户端发送这个,告诉他要接收多弯正少字符,然后在发送埋盯悔数据。
void recv_n(int new_fd,char *buf,int len)
{
int ret
int total = 0
while(total<len)
{
ret = recv(new_fd,buf+total,len-total,0)
total += ret
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)