博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python网络编程02/基于TCP协议的socket简单的通信
阅读量:5263 次
发布时间:2019-06-14

本文共 1783 字,大约阅读时间需要 5 分钟。

目录

Python网络编程02/基于TCP协议的socket简单的通信

1.昨日内容回顾

1.单播:单独联系某一个人2.广播:给所有人发送消息(群发)3.比特流:bit就是0101跟水流一样的源源不断的发送010101014.以太网协议:将数据进行分组:一组称之为一帧,数据报        head|data head:18字节:源mac地址|目标mac地址|数据类型 data:最少46个字节,最多是1500个字节5.mac地址:就是计算机网卡上记录的地址,世界上所有的计算机独一无二的标识,用于局域网内广播(单播)时查找的计算机位置6.交换机:分流连接计算机的作用7.路由器:家用路由器,企业版路由器8.交换机的mac学习功能:    第一次发送消息广播的形式,当学习记录表是上的端口与mac地址对应关系之后,再发送消息,是以单播的形式    端口1:  1C-5F-4B-3E-35-2C    端口2:  1C-5F-4B-6E-35-2C   9.广播风暴: 所有的计算机都在广播的形式发送消息.10.P协议: 四段分十进制    172.168.0.1子网掩码:    A: 255.0.0.0    B: 255.255.0.0    C: 255.255.255.011.路由器:     外网(公网)IP,     内网(局域网)IP 都是假的,    DHCP协议: 路由器自动分发的IP地址,网关等等.    端口: 0~1023系统的, 自己选取端口8080 以后都可以.12.ARP协议:通过IP地址获取计算机mac地址13.TCP协议:面向链接的协议,流式协议,安全可靠效率低的协议,传输文件,浏览器等14.UDP协议:用户数据报协议,效率高,不可靠协议,微信

1730001-20190816220725829-341145975.png

1730001-20190816220736020-1278410290.png

2.socket

2.1 socket套接字

1.socket是处于应用层与传输层之间的抽象层,它是一组操作起来非常简单的接口(接收数据)此接口接收数据后,交由操作系统2.为什么存在socket抽象层    如果直接与操作系统交互非常麻烦,繁琐,socket对这些繁琐的操作高度的封装,简化3.socket在Python中就是一个模块

2.2 基于TCP协议的socket简单通信

  • 客户端(client)

    import socket# 买电话phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#拨打电话号码phone.connect(("127.0.0.1",8888))#给客户端发送内容date = input("请输入:")phone.send(date.encode("utf-8"))#允许接收服务端至多1024字节from_server_date = phone.recv(1024)# 打印服务端发过来的消息print(f"来自服务端的消息:{from_server_date}")phone.close()
  • 服务端(server)

    import socket#买电话#默认基于TCP协议的socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#绑定电话卡phone.bind(("127.0.0.1",8888))  #绑定IP地址和端口#开机监听phone.listen(5) #服务端可以接收N个链接,但是只能同一时刻回应五个请求.print(111)#等待连接conn,addr = phone.accept() #阻塞(等待客户端的连接)print(conn,addr)# 打印数据传输的通道、客户端的ip 端口,conn代表两条管道from_client_data = conn.recv(1024) #至多接收1024个字节 阻塞#超过1024分批接收print(f'来自客户端的消息:{from_client_data}') #打印客户端发送的内容conn.send(from_client_data.upper()) #给客户端发送内容conn.close() #关闭通道phone.close()#关机

转载于:https://www.cnblogs.com/liubing8/p/11366626.html

你可能感兴趣的文章
类加载机制
查看>>
tju 1782. The jackpot
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>