码迷,mamicode.com
首页 > 其他好文 > 详细

网络基础相关的知识 socket模块

时间:2018-08-10 23:14:31      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:data   分配   参数   形式   主机   send   div   操作   2.4   

1、架构

  1、C/S架构:client客户端和server服务器端

    优势:能充分发挥pc机的性能

  2、B/S架构:browser浏览器和server服务器    隶属于C/S架构

    B/S架构  统一了应用的接口

2、通信的事

  a、同一台电脑上两个py程序通信:打开一个文件

  b、两个电脑如何通信:连一个网线

  c、多个电脑通信:

    ex:电脑1(源)要找电脑2(目标)

    电脑1首先发送一个请求帧,其中包含(我的IP地址和mac地址,以及我要找的IP地址的主机),将此请求发送给交换机。

    交换机要广播这条消息给其他所有的主机

    目标主机接收到消息后,对比发现自己就是被找的主机,回复给交换机信息(IP地址,mac地址请回复给IP地址为XXX,mac地址为XXX的主机)

    交换机单播形式返回给源主机

3、知识点

  1、mac地址:是一个物理地址

  2、IP地址:是一个四位点分十进制,它标识了计算机在网络中的位置。

  3、交换机的通信方式:

    广播:发送给所有的主机

    单播:一对一

    组播:一对多

  4、arp协议:通过目标IP地址获取目标mac地址的一个协议。

  5、端口:操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序。

  6、路由器:连接不同网段,路由

  7、网关:类似于一个局域网的出口和入口

  8、网段:一个局域网的IP地址范围

  9、子网掩码:子网掩码&IP地址得到网段

  10、osi五层模型:

    应用层:http,https,ftp  

    http:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议

    https:HTTP的安全版

    ftp:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。

    传输层:tcp/udp                 四层交换机         四层路由器

    tcp:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的基于字节流传输层通信协议

    udp:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接传输层协议,提供面向报文的简单不可靠信息传送服务,(快)

    网络层:IP协议                  路由器        三层交换机

    数据链路层:arp协议         以太网交换机   网卡     网桥

    物理层:传输电信号          中继器、集线器、网线、光纤

4、socket 模块  又叫做套接字模块

   sk = socket.socket(family = AF_INET, type=SOCK_STREAM)

  family:

    AF_UNIX基于文件类型的套接字(源自于unix)

    AF_INET基于网络类型的套接字

    一种是基于TCP协议     SOCK_STREAM

    一种是基于UDP协议     SOCK_DGRAM

  unix系统的中心思想:一切皆文件

1 # 客户端
2 import socket
3 import time
4 sk = socket.socket()
5 sk.connect(("192.168.12.47",8080)) # 8080为端口号
6 sk.send("中文".encode("utf-8")
7 time.sleep(10)
8 sk.close()
 1 # 服务器端
 2 import socket
 3 import time
 4 sk = socket.socket()  # 不传参数,默认使用基于网络类型的套接字,协议:TCP
 5 sk.bind(("192.168.12.47",8080))
 6 sk.listen() # 同时能接收的连接
 7 conn,addr = sk.accept() # 等待接收客户端的连接   组赛等待
 8 msg_r = conn.recv(10)  # 接收数据,接收10个字节
 9 print("conn:",conn)
10 print("addr:",type(addr))
11 print(msg_r.decode("utf-8"),addr)
12 time.sleep(10)
13 conn.close()
14 sk.close()

 


  

网络基础相关的知识 socket模块

标签:data   分配   参数   形式   主机   send   div   操作   2.4   

原文地址:https://www.cnblogs.com/wjs521/p/9457208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!