网络编程
本质是让处于网络中的两个设备进行进程间的数据交换,网络是网络编程的基础。
网络体系结构通常有OSI、TCP/IP和五层模型三种,协议一般有TCP、UDP、IP协议三种。
TCP面向连接且可靠、UDP无连接速度快、IP连接不可靠。
还需要了解一些网络技术中和ip地址有关的部分
网络编程概述
当今网络编程一般采用请求\响应方式。也就是C/S。
套接字socket
即socket,它是进程之间进行通信的方式,其本意为插座。python中有它涵盖的基本方法、函数和类等。同时它还包含了一个同名类,通过该类可以实例化一个socket对象。
_init_(self,family=<AddressFamily.AF_INET:2>,
type=<SocketKind.SOCK_STREAM:1>,proto=0,fileno=None)
AF_INET-ipv4
AF_INET6-ipv6
AF_UNIX 单一的UNIX系统之间的通信
SOCK_STREAM:流式套接字,用于TCP
SOCK_DGRAM:数据报式套接字,用于UDP
SOCK_RAW:用于ICMP\IGMP,或者用于构建ip头部
proto用于选择协议
fileno用于选择文件描述符
创建
import socket
socket_tcp=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
通信流程
面向连接的
类似我们打电话,必须接通才能开始数据通信。
面向非连接的
类似我们收发邮件,接收方不用考虑联通。区别在于客户端不会发起所谓的连接请求而是直接用sendto函数向接收方发送数据。