python socket编程基础知识

来源:互联网 发布:js正则验证数字和字母 编辑:程序博客网 时间:2024/05/16 11:06

网络编程基础总结

IP地址分类使用:

A类:二进制0开头(1-127)
B类:二进制10开头(128-191)
C类:二进制110开头(192-223)
D类:二进制1110开头(224-239)
E类:二进制11110开头(240-255)

特殊地址:

一、数据包不会出现在Internet上:

  • 10.0.0.0-10.255.255.255
  • 172.16.0.0-172.31.255.255
  • 192.168.0.0-192.168.255.255

二、环回地址:

  • 127.0.0.1/localhost

端口

端口是协议端口号的简称,其端口号范围为0-65535

  • 熟知端口号:0-1023;常用的服务器使用
  • 登记端口号(到机构登记其使用)1024-49151
  • 客户端使用的短暂端口号(49152-65535)

注意:编程时指定地址时,最少应指定IP地址和端口号,其格式为:IP地址:80


TCP/UDP协议

UDP协议(传输控制协议)

  • 无连接,减少网络开销和时延
  • 尽最大努力交付,上层应对数据作验证处理
  • 无拥塞控制,用在保证速率的数据传送中(IP电话、网络视频)
  • 面向连接的通讯协议(通信前应先建立连接,实质为虚连接)
  • 应用举例:TFTP、DNS、SNMP、VoIP、QQ

TCP协议(用户数据报协议)

  • 面向连接的通讯协议(通信前应先建立连接,实质为虚连接)
  • 提供可靠的交付服务
  • 实现了全双工通信
  • 面向字节流(传输的任何数据被视为二进制代码流)
  • 一个连接只能有两个传输端点
  • 应用举例:HTTP、FTP、TELNET、POP、SMTP

TCP/UDP协议不同点:

  • TCP应先建立连接,再通信,最后应释放连接;UDP不用管理连接。
  • TCP保证数据可靠交付,用起来更省心;UDP不保证可靠交付,用户应自行处理可靠性。
  • TCP连接开销大;UDP则开销小。
  • TCP适用实时性低,但数据可靠性高的场合;UDP适用实时性高,但数据可靠性低的场合。

TCP/UDP协议相同点:

  • 位于TCP/IP协议的第四层。
  • 为应用层提供服务。
  • 都要通过网际层来具体实现数据传输

用socket实现TCP客户端

基本步骤:

  1. 创建套接字,连接服务器
  2. 收发数据
  3. 关闭套接字

TCP通信模型:

这里写图片描述


用socket实现UDP客户端

基本步骤:

  1. 创建套接字
  2. 收发数据
  3. 关闭套接字

UDP通信模型:

这里写图片描述


用socket实现服务器端

C/S模式简介:

C/S模式就是client/Server模式,中文为客户/服务器模式

  • client即客户端,是指主动向服务器发出服务请求的一方。
  • Server即服务器,是指响应客户请求并提供客户所需要的网络服务的一方。
  • 服务器一般在系统启动时自动调用运行,并等待客户机的请求。
  • 与其相对的是B/S模式,即浏览器/服务器模式。
    客户端使用统一的浏览器,而不用专门的部署。
    服务器端与浏览器间使用应用层的HTTP协议进行通信。

套接字网络编程基础

用socket建立TCP服务器端:

  1. 创建套接字并绑定地址
  2. 开始监听连接
  3. 接收连接并收发数据
  4. 关闭套接字

TCP通信模型:
这里写图片描述
用socket建立UDP服务器端:
1. 创建套接字并绑定地址
2. 开始监听连接
3. 收发数据
4. 关闭套接字

UDP通信模型:
这里写图片描述

0 0