首页 > 编程语言 >计算机网络之应用层-FTP、P2P、Socket编程

计算机网络之应用层-FTP、P2P、Socket编程

时间:2023-02-09 12:37:06浏览次数:43  
标签:FTP Socket TCP P2P 接字 连接


1. FTP

FTP 即 文件传送协议( File Transfer Protocol ),用于在互联网的两个主机间实现文件互传的网络应用的应用层协议。

FTP的服务器进程由两大部分组成:

1. 主进程, 负责接受新的客户请求;

2. 从属进程, 负责处理单个客户请求, 与具体客户进行交互;

FTP客户与服务器之间的连接分为两种:

1. 控制连接,专门用于用户登录、服务器授权,为持久连接;

2. 数据连接,专门用于文件传输,为临时连接;

计算机网络之应用层-FTP、P2P、Socket编程_套接字

FTP专门使用一个独立的控制连接传输控制信息, 与传输文件信息进行分离, 所以将FTP这种控制信息的传送方式称为带外控制。

FTP是有状态的协议, FTP的命令都是可读的,例如:USER、PASS、LIST。

2. P2P

P2P 即 Peer to peer,近年来很多性能表现优异, 深受用户喜爱的P2P应用层出不穷。例如:BitTorrent、 PPLive和PPstream等。

P2P应用特点:

1. 应用的对等方是用户的计算机;

2. 很强的应用规模伸缩性;

3. 应用在对等方之间进行;

4. 应用充分聚集利用了端系统的计算能力以及网络传输宽带;

3. Socket编程基础

套接字(Socket)

端口号: 标识套接字。

计算机网络之应用层-FTP、P2P、Socket编程_TCP_02

 常见端口号:

计算机网络之应用层-FTP、P2P、Socket编程_计算机网络_03

常用Socket API 函数:

1. 创建套接字:socket( );

计算机网络之应用层-FTP、P2P、Socket编程_服务端_04

2. 绑定套接字的本地端点地址: bind( );

3. 设置监听: listen( );

4. 建立连接:

(1). TCP客户端: connect( ) ;

(2). TCP服务端: accept( );

5. 接收数据:

(1). TCP客户端:recv( );

(2). TCP服务端:recvfrom( );

6. 发送数据:

(1). TCP客户端:send( );

(2). TCP服务端:sendto( );

7.关闭套接字: close( );
 

标签:FTP,Socket,TCP,P2P,接字,连接
From: https://blog.51cto.com/u_15959833/6046785

相关文章

  • 磁盘空间不足导致ftp文件上传失败
    今天用ftp准备将相应文件上传至服务器中,但是却无法上传,也没有什么报错语言,就是一个failed。换给软件上传也没用,报同样的错误。 后来发现,是服务器根目录磁盘空间不足,显示......
  • Linux 搭建FTP服务总结
    三种解析:username-->UID :/etc/passwd   将用户名转换成UID的库。hostname--->  IP  :DNS服务,/etc/hosts  将主机名转换成IP地址servicename-->ports :......
  • FreeSWITCH 使用SSL-WebSocket-WebRTC
    阿里上买的域名,申请了个免费ssl,然后开始折腾,,,,申请了ssl证书,但是不提供.pem格式的下载(*/ω\*)然后把一堆提供的都下载下来了, 然后又到网上搜crt/cer......
  • 远程挂载sftp
    1.A机器上启用sftp,编辑/etc/ssh/sshd_configSubsystemsftpinternal-sftpCiphersaes256-ctr,aes192-ctr,aes128-ctrMatchGroupsftpChroot......
  • 关于一次close socket函数bug事故引发的思考
    前因后果昨天一下午肝完了作业1-12全部部分,就剩下13了。这次作业整体上较为简单,就是写一个webserver,然后用各种IO和IPC去实现多线程,多进程以及线程和进程的通信。这完全属......
  • linux socket
    Linux网络基础编程 内容简介一、socket的概念二、socket的类型三、socket的位置四、网络地址五、端口号六、字节序七、socket基础编程 一、socket的概......
  • 关于nginx-启动报错nginx: [emerg] socket() [::]:80 failed (97: Address family not
    今天在一台服务器上使用yum安装了nginx,然后启动报错:nginx:[emerg]socket()[::]:80failed(97:Addressfamilynotsupportedbyprotocol)先说一下环境,OSRelease:......
  • 基于SpringBoot的WebSocket开发(非完整代码)
    1、添加依赖<!--websocket--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starte......
  • Python实现的简易FTP
    Python版本实现了比之前的xxftp更多更完善的功能1、继续支持多用户2、继续支持虚拟目录3、增加支持用户根目录以及映射虚拟目录的权限设置4、增加支持限制用户根目录或者虚......
  • 高性能Socket通信技术文摘
    TouchSocket这是一个轻量级的、支持插件的综合网络通信库。基础通信功能包含Tcp、Udp、Ssl、Rpc、Http等。在空载函数执行时,10万次调用仅3.8秒,在不返回状态时,仅0.9秒。htt......