忙了两天,继续更文!希望多多支持。

套接字

套接字是一种具有之前所说的"通讯端点"概念的计算机网络数据结构。网络化的应用程序在开始任何通讯之前都必需要创建套接字。

套接字有三种:

1、 AF_UNIX(在 POSIX1.g 标准中也叫 AF_LOCAL),表示"地址家族:UNIX",是指在unix系统中使用的 套接字,这些套接字是基于文件的。所以,它们的底层结构是由文件系统来支持的。

2、 AF_INET或叫"地址家族:Internet"。它是基于网络的,还有一种地址家族 AF_INET6 被用于网际协议第 6 版(IPv6)寻址上。

3、 AF_NETLINK:Python 2.5 中加入了一种 Linux 套接字的支持:AF_NETLINK(无连接)套接字家族让用户代码与内核代码之间的 IPC 可以使用标准 BSD 套接字接口。

Python 只支持 AF_UNIX,AF_NETLINK,和 AF_INET 家族。我们平时使用的大部分都是基于网络的,所以,主要用AF_INET。

1、 面向连接与无连接

有过网络基础的人都会了解TCP协议和UDP协议,他俩是不同的。主要区别就是TCP是基于面向连接的,而UDP是无连接的。

面向连接

即在通讯之前一定要建立一条连接,就像跟朋友打电话时那样。TCP协议在和别人通信的时候首先要进行三次握手和建立连接,才能继续通信。

要创建 TCP 套接字就得在创建的时候,指定套接字的类型为 SOCK_STREAM。TCP 套接字采用 SOCK_STREAM 这个名字,表达了它做为流套接字的特点。由于这些套接字使用 Internet 协议(IP)来查找网络中的主机,这样形成的整个系统,一般会由这两个协议(TCP 和 IP)来提及,即 TCP/IP。

无连接

无连接和面向连接正好相反,它不需要先和别人建立连接,而是直接和别人通讯,就像我直接对你喊话一样。这样不能保证通讯的可靠性和数据完整性。这种协议主要用在一些在线视频传输方面,因为视频中丢一点信息对观看影响不大。

实现这种连接的主要协议就是用户数据报协议(即 UDP)。要创建 UDP 套接字在创建的时候,指定套接字类型为 SOCK_DGRAM。S由于这些套接字使用 Internet 协议来查找网络中的主机,这样形成的整个系统,一般会由这两个协议(UDP 和 IP)来提及,即 UDP/IP。

socket()模块函数

在python中,我们主要调用socket()函数来进行 网络编程。

socket_family 可以是 AF_UNIX 或 AF_INET。socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM。这几个常量的意义可以参考之前的解释。protocol 一般不填,默认值为 0。

创建一个 TCP/IP 的套接字,你要这样调用 socket.socket():

同样地,创建一个 UDP/IP 的套接字,你要这样:

python套接字函数:

TCP编程:

客户端和服务器建立连接流程图如下:

TCP服务器编程步骤:

如果有多个客户端要连接服务器,服务器端可以创建线程来与客户端建立连接,下一节将会将。

示例代码:

TCP客户端编程

示例代码:

运行结果:

UDP编程:

Udp相比TCP就简单多了

UDP服务器编程:

示例代码:

UDP客户端编程:

运行结果:

下一篇介绍python服务器与客户端多线程编程,欢迎关注。

python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程...相关推荐

  1. python七段数码管绘制英文字母_Python入门基础:七段数码管绘制

    1.在学习Python的过程中,运用所学的一些基础知识,进行一些简单的编程,可以收获很多乐趣.在生活中,LED灯无处不在,荧幕显示的广告词,给我们呈现出动态的视觉效果.下面,则以最简单的显示日期为例, ...

  2. socket与TCP/UDP编程-转

    Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket ...

  3. 网络编程—网络基础概览、socket,TCP/UDP协议

    网络基础概览 socket概览 socket模块-TCP/UDP的实现 TCP/UDP总结 网络基础概览 osi七层协议各层主要的协议 # 物理层传输电信号1010101010 # 数据链路层,以太网 ...

  4. Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程

    目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...

  5. TCP/UDP编程中的问题汇总

    TCP/UDP编程中的问题汇总 TCP和UDP发送大文件的问题. 答: 发送端: 发送时,先发送文件的名称及大小等信息. 然后,设置一个缓冲区的大小,假设为4K. 再循环读4K的文件内容,并发送,直到 ...

  6. Java TCP/UDP编程

    java TCP & UDP编程 UDP编程 TCP编程 UDP编程 UPD: User Datagram Protocol.面向无连接,不安全. UDP中,发送方无需知道接收方是否接受,只考 ...

  7. python爬虫本科容易找工作吗_python爬虫基础学完了,我真的能找到一份工作吗?...

    1.能不能找到工作我觉得取决于你技术掌握的程度. 2.无论在什么领域,只要你技术到家,都不用愁找不到工作. 3.多数人问他们转行能不能找到工作,是想知道这个岗位需要的人多不多,在爬虫这个领域,从事这方 ...

  8. python基础教程运行程序_Python入门基础教程:WSGI

    原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...

  9. [转载] 把数据对象转成字符串_python入门基础培训教程,Python 字符串学习

    参考链接: Python字符串| printable python入门基础培训教程中,字符串的学习即基础又非常重要,如果不能掌握好python字符串,对于以后python课程的学习,将会带来严重的错误 ...

最新文章

  1. uva 401.Palindromes
  2. 2017-09-22 前端日报
  3. 8)排序②排序算法之选择排序[1]直接选择排序
  4. C# MainWindowHandle为0的解决方法
  5. yum 安装php7和相关扩展
  6. 编程之美-构造数独方法整理
  7. pptx版式验证代码
  8. 职场精英修炼必学工具:75页自我管理的29个工具,系统方法论
  9. [MATLAB]设置坐标轴标签
  10. 旧物回收类网站源码v2.4
  11. 单片机自学入门必看基础知识
  12. 整理:不用ACE你不知道ACE有多烂,给饱受ACE折磨的弟兄们散分了。
  13. Semantic Nighttime Image Segmentation with Synthetic Stylized Data Gradual Adaptation
  14. [乡土民间故事_徐苟三传奇]第三回_小苟三巧施放鱼计
  15. 求生之路本地服务器无限子弹,求生之路2无限子弹怎么调整
  16. Top 10 Performance Problems taken from Zappos, Monster, Thomson and Co
  17. elasticsearch安装与配置
  18. python怎样用函数求水仙花数_python求解水仙花数的方法
  19. matlab卷积相关
  20. Flutter组件--Image 图片组件,圆形图片

热门文章

  1. SqlServer SqlBulkCopy批量插入 -- 多张表同时插入(事务)
  2. Centos7安装Oracle JDK
  3. UI1_UIView层操作
  4. SPOJ 962 Intergalactic Map (从A到B再到C的路线)
  5. flash时间轴控制命令
  6. asp.net发送邮件时在正文中插入图片
  7. life list 2010
  8. 单行溢出 和多行溢出
  9. bootstrap --- 分页
  10. Java 类的特性2