python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程...
忙了两天,继续更文!希望多多支持。
套接字
套接字是一种具有之前所说的"通讯端点"概念的计算机网络数据结构。网络化的应用程序在开始任何通讯之前都必需要创建套接字。
套接字有三种:
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编程...相关推荐
- python七段数码管绘制英文字母_Python入门基础:七段数码管绘制
1.在学习Python的过程中,运用所学的一些基础知识,进行一些简单的编程,可以收获很多乐趣.在生活中,LED灯无处不在,荧幕显示的广告词,给我们呈现出动态的视觉效果.下面,则以最简单的显示日期为例, ...
- socket与TCP/UDP编程-转
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket ...
- 网络编程—网络基础概览、socket,TCP/UDP协议
网络基础概览 socket概览 socket模块-TCP/UDP的实现 TCP/UDP总结 网络基础概览 osi七层协议各层主要的协议 # 物理层传输电信号1010101010 # 数据链路层,以太网 ...
- Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程
目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...
- TCP/UDP编程中的问题汇总
TCP/UDP编程中的问题汇总 TCP和UDP发送大文件的问题. 答: 发送端: 发送时,先发送文件的名称及大小等信息. 然后,设置一个缓冲区的大小,假设为4K. 再循环读4K的文件内容,并发送,直到 ...
- Java TCP/UDP编程
java TCP & UDP编程 UDP编程 TCP编程 UDP编程 UPD: User Datagram Protocol.面向无连接,不安全. UDP中,发送方无需知道接收方是否接受,只考 ...
- python爬虫本科容易找工作吗_python爬虫基础学完了,我真的能找到一份工作吗?...
1.能不能找到工作我觉得取决于你技术掌握的程度. 2.无论在什么领域,只要你技术到家,都不用愁找不到工作. 3.多数人问他们转行能不能找到工作,是想知道这个岗位需要的人多不多,在爬虫这个领域,从事这方 ...
- python基础教程运行程序_Python入门基础教程:WSGI
原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...
- [转载] 把数据对象转成字符串_python入门基础培训教程,Python 字符串学习
参考链接: Python字符串| printable python入门基础培训教程中,字符串的学习即基础又非常重要,如果不能掌握好python字符串,对于以后python课程的学习,将会带来严重的错误 ...
最新文章
- uva 401.Palindromes
- 2017-09-22 前端日报
- 8)排序②排序算法之选择排序[1]直接选择排序
- C# MainWindowHandle为0的解决方法
- yum 安装php7和相关扩展
- 编程之美-构造数独方法整理
- pptx版式验证代码
- 职场精英修炼必学工具:75页自我管理的29个工具,系统方法论
- [MATLAB]设置坐标轴标签
- 旧物回收类网站源码v2.4
- 单片机自学入门必看基础知识
- 整理:不用ACE你不知道ACE有多烂,给饱受ACE折磨的弟兄们散分了。
- Semantic Nighttime Image Segmentation with Synthetic Stylized Data Gradual Adaptation
- [乡土民间故事_徐苟三传奇]第三回_小苟三巧施放鱼计
- 求生之路本地服务器无限子弹,求生之路2无限子弹怎么调整
- Top 10 Performance Problems taken from Zappos, Monster, Thomson and Co
- elasticsearch安装与配置
- python怎样用函数求水仙花数_python求解水仙花数的方法
- matlab卷积相关
- Flutter组件--Image 图片组件,圆形图片