1. 网络编程就是如何在程序中实现两台计算机的通信
- 网络通信是两台计算机上连个进程之间的通信
- 什么是协议
1. 互联网包含网络上百种的协议标准,但最重要的两个协议是TCP和IP -
TCP/IP协议族
1. 点对点的链接机制
图片.png - IP地址
- ip地址由两部分组成网络地址,主机地址
- ip地址根据网络号和主机号来分 A,B,C三类特殊地址D,E 全0和全1都保留
- A:0-127 B:128-191 C:192-223 D:224-239 E:240-247
- D类ip是专门保留的地址,他并不指向特定的网络
- 端口
1. 端口是通过端口号来标记 范围0-65535
2. 系统保留的端口号 0-1023 - 默认网关
1. 是一个可以直接到达的IP路由器的IP地址 - LAN, WAN, WLAN
1.局域网,广域网, 无线局域网
2. socket 套接字
- 网络中进程之间的通信
1. 主要解决如何唯一标识一个进程,否则通信无从谈起
2. 利用IP地址,协议,端口就可以进程标识网络中的进程 - socket 套接字 是进程通信的一种方式 能实现不同进程之间的通信
- import socket 引入套接字模块
- socket.socket(addressFamily,Type)
1.AF_INET(用于internet进程间的通信) 常用
2.AF_UNIX(用于同一台机器进程间的通信)
1. SOCK_STREAM(流式套接字,用于TCP协议)
2.SOCK_DGRAM(数据报套接字,用于UDP协议) - socket.socket(socket.AF_INET,socket.SOCK_STREAM)
- socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
- socket 套接字常用操作
s.bind() 绑定(主机名称、端口)到一个套接字上
s.listen() 设置并启动TCP监听
s.accept() 等待客户端连接
s.connect() 连接指定服务器
s.recv() 接受TCP消息
s.send() 发送TCP消息
s.recvfrom() 接受UDP消息
s.sendto() 发送UDP消息
s.close() 关闭套接字对象 - TCP是一种面向连接的,可靠的基于字节流的传输通信协议
- 流程
- socket 创建一个套接字
- bind绑定ip和port
- listen
- UDP面向无连接的 不可靠的传输协议 传输速度快, 不可靠
- 一般情况下,服务端,需要绑定端口 客户端一般不需要绑定 目的是让操作系统随机分配
5.应用层编程(FTP,SMTP)
5.1FTP 文件传输协议
- 底层是在TCP协议完成网络数据传输
- 封装了两个套接字完成文件操作
- 21端口的套接字用于传输控制指令
- 20端口传输具有文件数据
- 启动安装FTP服务器,管理控制台
1. 控制面板下 的程序和功能
2. 左侧启动或关闭Windows功能
3. internet information Services下的
4. ftp服务器 ftp服务 ftp扩展性
5. web管理工具
6. 收发协议
6.1 POP3
-
用来接受邮件
6.2 SMTP
*发送邮件
6.3 IMAP- iis管理工具 点击确定
- 在window搜索中搜索iis 找到iis管理器
- 在左侧网站右键选择创建ftp站点