Python 网络编程1:socket简介

简介: Python 网络编程1:socket简介

一、不同电脑上的进程之间如何通信



  • 在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的。
  • 其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用进程(进程)。
  • 这样利用ip地址,协议,端口就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互


注意:

  • 所谓进程指的是:运行的程序以及运行时用到的资源这个整体称之为进程(在讲解多任务编程时进行详细讲解)
  • 所谓进程间通信指的是:运行的程序之间的数据共享


二、什么是socket ?



  • socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:
    它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的
    例如我们每天浏览网页、QQ 聊天、收发 email 等等


三、创建socket



  • 3.1、在 Python 中 使用socket 模块的函数 socket 就可以完成:


import socket
socket.socket(AddressFamily, Type)
  • 3.2、说明:函数 socket.socket 创建一个 socket,该函数带有两个参数:
  • Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
  • Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议)
  • 3.3、创建一个tcp socket(tcp套接字)


import socket
# 创建tcp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# ...这里是使用套接字的功能(省略)...
# 不用的时候,关闭套接字
s.close()
  • 3.4、创建一个udp socket(udp套接字)


import socket
# 创建udp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# ...这里是使用套接字的功能(省略)...
# 不用的时候,关闭套接字
s.close()


  • 3.5、说明:套接字使用流程 与 文件的使用流程很类似
  • 创建套接字
  • 使用套接字收/发数据
  • 关闭套接字
目录
相关文章
|
13天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
29 1
|
4天前
|
数据采集 存储 数据挖掘
Python网络爬虫实战:抓取并分析网页数据
使用Python的`requests`和`BeautifulSoup`,本文演示了一个简单的网络爬虫,抓取天气网站数据并进行分析。步骤包括发送HTTP请求获取HTML,解析HTML提取温度和湿度信息,以及计算平均温度。注意事项涉及遵守robots.txt、控制请求频率及处理动态内容。此基础爬虫展示了数据自动收集和初步分析的基础流程。【6月更文挑战第14天】
69 9
|
2天前
|
Python
【干货】Python下载网络小说
【干货】Python下载网络小说
9 2
|
3天前
|
XML 数据库 数据格式
Python网络数据抓取(9):XPath
Python网络数据抓取(9):XPath
13 0
|
6天前
|
数据采集 前端开发 Python
Python3网络开发实战读后感
Python3网络开发实战读后感
|
6天前
|
存储 JSON 算法
Python中的并发编程(4)多线程发送网络请求
Python中的并发编程(4)多线程发送网络请求
|
9天前
|
机器学习/深度学习 PyTorch TensorFlow
|
10天前
|
网络协议 Unix API
Python 网络编程
Python 网络编程
|
10天前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
50 4
|
8天前
|
数据可视化 算法 JavaScript
使用Python进行网络数据可视化的多种方法与技巧
在当今信息爆炸的时代,网络数据量呈指数级增长,了解和分析这些数据对于许多领域的决策制定至关重要。可视化是理解和解释大量数据的强大工具之一,而Python作为一种流行的编程语言,提供了丰富的库和工具来进行网络数据可视化。本文将介绍一些使用Python进行网络数据可视化的方法与技巧,并提供相应的代码实例。

热门文章

最新文章