广告
返回顶部
首页 > 资讯 > 后端开发 > Python >网络通信 & 初识socket
  • 185
分享到

网络通信 & 初识socket

网络通信socket 2023-01-30 22:01:08 185人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本节主要内容: 1.客户短\服务端架构 2.网络通信的流程 3.初识Socket   一.客户端\服务端架构 客户端\服务端架构: 即Client/Server (C/S) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Clie

本节主要内容:

1.客户短\服务端架构

2.网络通信的流程

3.初识Socket

 

一.客户端\服务端架构

客户端\服务端架构:

Client/Server (C/S) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。
客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。
 
B\S架构:
Browser/Server (浏览器/服务器) 结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。
客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于客户端没有程序,应用程序的升级和维护都可以在服务器端完成,升级维护方便。由于客户端使用
浏览器,使得用户界面“丰富多彩”,但数据的打印输出等功能受到了限制。为了克服这个缺点,一般把利用浏览器方式实现困难的功能,单独开发成可以发布的控件,在客户
端利用程序调用来完成.
 

软件C\S架构:客户端\服务端架构:京东,淘宝,今日头条,qq,微信.....

B\S架构:浏览器(browser)\服务端>>>统一接口,例: 微信上的小程序

硬件C\S架构: 打印机.

 

 二.网络通信的流程

网络通信中的一些基本概念: 

网线:传送电信号

网卡: 提供网络接口,接收电信号

Mac地址: 长度为48位二进制, 通常由12位16进制数表示(前六位是厂商编号, 后六位是流水线号), 每块网卡出厂时都被烧制了全球唯一的mac地址.

Ethernet规定接入Internet的设备都必须具备网卡, 发送端和接收端的地址便是网卡的地址.

查看mac地址的方法:windows下在cmd窗口输入ipconfig -all指令:下面显示的这个物理地址就是mac地址。

集线器:将所有连接到集线器的网络设备连通起来

交换机: 升级版的集线器

路由器:用来转发消息

路由协议:用来计算转发消息的最优路径

IP地址: 互联网协议地址, 它是IP协议提供的一种统一的地址格式, 它为互联网上的每一个网格和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异.在IPv4里有32位二进制数组成, 通常被分割为4个8位二进制数, 由四个点分十进制数表示.

DHCP服务: 是一个局域网的网络协议, 使用UDP协议工作, 用于内部网络自动分配IP地址

子网掩码: 格式与IP地址一样, 将某个IP地址划分成网络地址和主机地址两部分, 用来判断两个IP地址是否在一个网段.1表示网络地址, 0表示主机地址.

网关: 一个网络通向其他网络的IP地址, 即路由器的IP地址

DNS: 进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器

广播: 将源MAC地址,目标MAC地址及信息通过交换机和路由器发送给局域网内的所有其他设备

ARP协议: 地址解析协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址.

 

网络通信的流程:

关于网络通信的整个流程请点击链接查看.

 

三.初识socket

socket是实现网络编程工具, 以下是两段简单的代码.

import socket
#创建一个socket对象
server = socket.socket()  #相当于创建了一部电话
ip_port = ('192.168.111.1',8001) #创建一个电话卡
server.bind(ip_port) #插上电话卡
server.listen(5) #监听着电话,我能监听5个,接到一个电话之后,后面还能有四个人给我打电话,
但是后面这四个人都要排队等着,等着我第一个电话挂掉,再来第6个的时候,第六个人的手机会报错 print('11111') #等着别人给我打电话,打来电话的时候,我就拿到了和对方的这个连线通道conn和对方的电话号码addr conn,addr = server.accept() #阻塞住,一直等到有人连接我,连接之后得到一个元祖,里面是连线通道conn和对方的地址(ip+端口) print('22222') print(conn) print('>>>>>>>>>',addr) while True: from_client_data = conn.recv(1024) #服务端必须通过两者之间的连接通道来收消息 from_client_data = from_client_data.decode('utf-8') print(from_client_data) if from_client_data == 'bye': break server_input = input('明威说>>>>:') conn.send(server_input.encode('utf-8')) if server_input == 'bye': break conn.close() #挂电话 server.close() #关手机
import socket
import time

client = socket.socket()
server_ip_port = ('192.168.111.1',8001)

client.connect(server_ip_port)

while True:
    client_input = input('小文说>>>>:')
    client.send(client_input.encode('utf-8')) #给服务端发送消息
    if client_input == 'bye':
        break
    from_server_data = client.recv(1024)

    print('来自服务端的消息:',from_server_data.decode('utf-8'))
    if from_server_data.decode('utf-8') == 'bye':
        break
client.close() #客户端挂电话

 

 注意: 先运行server,然后再运行client,然后你会发现client这个文件再输出台的地方让你输入内容,你输入一个内容然后回车,你会发现server那边的控制台就输出了以client发送的内容
通过上面两段代码,我们队网络编程有了一个大概的认识

--结束END--

本文标题: 网络通信 & 初识socket

本文链接: https://www.lsjlt.com/news/180255.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 网络通信 & 初识socket
    本节主要内容: 1.客户短\服务端架构 2.网络通信的流程 3.初识socket   一.客户端\服务端架构 客户端\服务端架构: 即Client/Server (C/S) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Clie...
    99+
    2023-01-30
    网络通信 socket
  • 【网络】socket——预备知识 | 套接字 | UDP网络通信
    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! 在前面本喵对网络的整体轮廓做了一个大概的介绍,比如分层,协议...
    99+
    2023-09-02
    网络 udp
  • 初识网络编程
    c/s b/s 架构client 客户端/server 服务端browser 浏览器/server 服务端现在多数都是客户端与服务端之间进行交互,获取信息但像微信小程序,支付宝等一些应用都开始发展小程序功能,通过微信就可直接在内部调用其他...
    99+
    2023-01-31
    网络编程
  • C#中Socket网络通信类是什么
    这篇文章主要介绍了C#中Socket网络通信类是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。摘要之所以要进行Socket套接字通信库封装,主要是直接使用套接字进行网络通...
    99+
    2023-06-29
  • 网络编程知识-socket
    一、 C/S 架构:Client/Server   客户端/ 服务端   B/S 架构:Browser/Server  前端/ 服务端       网卡--> mac地址-->ip地址-->子网掩码-->网关--...
    99+
    2023-01-31
    网络编程 知识 socket
  • Python实现socket库网络通信套接字
    目录Socket网络通信套接字什么是套接字?地址簇套接字类型套接字的简单应用gethostbyname_ex()与gethostbyname()getservbyname()与getservbyport()getpr...
    99+
    2022-06-02
    Python socket库 Python socket套接字 Python网络通信
  • PHP学习笔记:网络编程与Socket通信
    在当今互联网时代,网络编程是一项非常重要的技能。它允许我们在不同的计算机之间进行通信和数据交换。而PHP作为一种强大的服务器端脚本语言,提供了丰富的网络编程功能,其中包括Socket通信。Socket通信是一种基于TCP/IP协议的网络编程...
    99+
    2023-10-21
    PHP网络编程 学习笔记 Socket通信
  • C#基于Socket套接字的网络通信封装
    本文为大家分享了C#基于Socket套接字的网络通信封装代码,供大家参考,具体内容如下 摘要 之所以要进行Socket套接字通信库封装,主要是直接使用套接字进行网络通信编程相对复杂,...
    99+
    2022-11-12
  • C#基于Socket的网络通信类你了解吗
    目录摘要代码总结摘要 之所以要进行Socket套接字通信库封装,主要是直接使用套接字进行网络通信编程相对复杂,特别对于初学者而言。实际上微软从.net 2.0开始已经提供了TCP、U...
    99+
    2022-11-13
  • 【网络编程】网络编程 和 Socket 套接字认识
    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 🎧一. 网络编程基础🎺1. 为什么需要网络编程?🎷2....
    99+
    2023-08-23
    网络 服务器 java
  • 客户端Socket与服务端ServerSocket串联实现网络通信
    目录引导语1、类属性2、初始化3、bind4、accept5、面试题5.1、说说你对Socket和ServerSocket的理解?5.2、说说对SocketOptions中的SO_T...
    99+
    2022-11-13
  • Python socket网络编程TCP/IP服务器与客户端通信
    Python socket网络编程 初学 python,前段时间买了两本书《python 编程从入门到实践》《Python 核心编程第三版》,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深...
    99+
    2022-06-04
    客户端 网络编程 通信
  • PHP Socket通信解密:构建高效网络应用的利器
    在现代网络开发中,Socket通信是一项至关重要的技术。它提供了一种实时、高效的方式,让服务器与客户端之间进行双向通信。本文将介绍如何使用PHP语言实现Socket通信,并提供相关的源代码示例。 创...
    99+
    2023-10-25
    php 开发语言
  • C#如何实现基于Socket套接字的网络通信封装
    小编给大家分享一下C#如何实现基于Socket套接字的网络通信封装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!摘要之所以要进行Socket套接字通信库封装,主要...
    99+
    2023-06-21
  • 【网络原理】网络通信与协议
    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 一. 网络发展史二. 网络通信基础1. IP地址2. 端口号3. 认识协议(核心概念)4. 五元组5....
    99+
    2023-08-16
    网络 java java-ee
  • 高性能跨平台网络通信框架 HP-Socket 5.6.1怎么更新
    今天就跟大家聊聊有关高性能跨平台网络通信框架 HP-Socket 5.6.1怎么更新,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。v5.6.1 更新一、SSL 组件更新所有 SSL ...
    99+
    2023-06-03
  • PHP中的网络通信
    PHP是一种流行的服务器端编程语言,其在网络通信方面也有较为广泛的应用。本文将介绍PHP中的网络通信相关知识,包括Socket编程、HTTP请求和响应、XML-RPC以及SOAP等方面。一、Socket编程Socket编程是一种在网络上进行...
    99+
    2023-05-25
    网络协议 PHP网络 通信编程
  • 客户端Socket与服务端ServerSocket串联实现网络通信的方法
    本文小编为大家详细介绍“客户端Socket与服务端ServerSocket串联实现网络通信的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“客户端Socket与服务端ServerSocket串联实现网络通信的方法”文章能帮助大家解决疑惑...
    99+
    2023-06-29
  • Java 中怎么利用Socket编程识别网络主机
    这期内容当中小编将会给大家带来有关Java 中怎么利用Socket编程识别网络主机,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。获取主机地址信息在Java中我们使用InetAddress类来代表目标网络地...
    99+
    2023-06-17
  • .NET网络编程——TCP通信
    一、网络编程的基本概念 : 1. 网络         就是将不同区域的电脑连接到一起,组成局域网、城域网或广域网。把分部在不同地理区域的计算机于专门的外部设备用通信线路 互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相...
    99+
    2023-08-31
    网络 tcp/ip 服务器 .net eclipse java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作