一、
1、协议:一组规则
2、OSI七层协议模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP四层协议模型:
应用层:http、ftp、nfs、ssh
传输层:TCP、UDP
网络层:IP
物理与网络接口层:
TCP:面向连接,确保消息传输准确无误
UDP:无连接, 不能确保消息传输准确无误
3、IP地址
IPV4: 32bit
点分十进制
二进制
IPV6
4、port
一个端口号对应一个进程
取值范围 0 ~ 65535
1 ~ 1023:系统端口
1024 ~ 5000:一般应用程序接口
5001 ~ 65535:用户自定义接口
5、套接字
是一个特殊的文件描述符
6、基于套接字的TCP通信流程
服务器:socket-->bind-->listen --> accept --> read/write -->close
客户端:socket --> connect -->read/write -->close
服务器模型:
1、循环服务器
2、并发服务器
(1)多进程并发 -- 需要注意子进程资源的回收
二、
网盘基本功能:目录查询、文件的上传与下载
查询目录代码:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
void do_ls(char dirname[]);
int main(int argc, char *argv[])
{
if(argc==1)
{
do_ls(".");
}
else
{
while(--argc)
{
printf("%s:\n",*(++argv));
}
}
return 0;
}
void do_ls(char dirname[])
{
DIR *dir_ptr;
struct dirent* direntp;
if(NULL==(dir_ptr=opendir(dirname)))
{
fprintf(stderr,"ls1:cannot open %s\n",dirname);
}
else
{
while(NULL!=(direntp=readdir(dir_ptr)))
{
printf("%s\n",direntp->d_name);
}
closedir(dir_ptr);
}
}
服务器主要代码:</