网络通信

网络通信需要啥? OSI参考模型是啥? socket:

  1. 物理层
  2. 数据链路层、MAC地址
  3. 网络层、 IP地址,好了两台机器能找到了,能连上
  4. 传输层、发数据,传数据,当然ICMP在网络层,它只是发送个ping包,三次握手
  5. 会话层
  6. 表示层
  7. 应用层

我们在开发过程中通常不需要关心怎么握手、怎么链接,这些功能已做好封装。socket

socket 是什么? 实例:

 import socket
client = socket.socket() # 声明socket类型,同时生成连接对象
client.connect(("localhost", 6969)) # 连接
client.send(b"Hello Word!") # 发数据
data = client.recv(1024) # 收数据
print("recv:", data)
client.close() import socket
server = socket.socket()
server.bind(('localhost', 6969)) # 绑定要监听的端口
server.listen() # 监听
print("我开始等电话了...")
# server.accept() # 等电话打进来
conn, addr = server.accept() # 这返回两个值conn是进来的连接,addr对方的地址
# conn 就是客户端连过来而在服务器端为其生成的一个连接实例
print(conn,addr)
print("电话来了")
data = server.recv(1024) # 接收数据
print("SERVER:recv, ", data.upper())
server.send(b"goodbye")
server.close()

Python学习记录之----网络通信(一)的更多相关文章

  1. Python学习记录之----网络通信(二)

    网络通信   socket 这一节太难了,还是看TA的吧 http://www.cnblogs.com/alex3714/articles/5830365.html 不能执行top等类似的 会持续输出 ...

  2. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  3. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  4. Python学习记录day8

    目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...

  5. Python学习记录day7

    目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...

  6. Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  7. 实验楼Python学习记录_挑战字符串操作

    自我学习记录 Python3 挑战实验 -- 字符串操作 目标 在/home/shiyanlou/Code创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所 ...

  8. 我的Python学习记录

    Python日期时间处理:time模块.datetime模块 Python提供了两个标准日期时间处理模块:--time.datetime模块. 那么,这两个模块的功能有什么相同和共同之处呢? 一般来说 ...

  9. Python 学习记录

    记录一些 学习python 的过程 -------------------------------------- 1. 初始学习 @2013年10月6日 今天开始学习python 了 遇到好多困难但是 ...

随机推荐

  1. c语言递归函数的调用

    int fun(); int main() { int n,sum=0,i; scanf("%d",&n); for (i=1; i<=n; i++) { sum+= ...

  2. SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)

    SQL SERVER 基于数据库镜像的主从同步 Author:chaoqun.guo    createtime:2019-03-26 目录 SQL SERVER 基于数据库镜像的主从同步... 1 ...

  3. linux常用文件

    /etc/redhat-release /etc/hostname /etc/ssh/sshd_config /proc/meminfo /etc/issue 查看系统版本号 /etc/rc.d/rc ...

  4. CentOS安装Yarn只需两步就搞定

    Yarn 是一个依赖管理工具.它能够管理你的代码,并与全世界的开发者分享代码.Yarn 是高效.安全和可靠的,你完全可以安心使用.代码是通过包(有时也被称为组件). 在每一个包中会定义一个 packa ...

  5. TADOConnection组件

    该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等. 该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据 ...

  6. Delphi启动数据库连接属性对话框

    有时候需要客户端进行服务器连接配置,自己写配置窗体,总不如直接使用系统提供的使用方便快捷 例子一: //此例子有个坏处不管用户点了确定还是取消,均返回值 procedure TForm1.Button ...

  7. Scala对class/object反射

    近期有需求,要根据解析字符串,根据字符串的内容去调用方法.想到的基本就是使用反射.但是基本上能找到的资料,全没有讲scala的反射.只有零星点点的讲解.大部分都是用scala的语法写java反射最后翻 ...

  8. crontab-rsync

    写一个shell脚本放到crontab中,该脚本利用rsync把远程同步到本地的话,需要把本地的公钥放到远程的authorized_keys:否则,手动执行脚本没问题,但是crontab执行就不会有效 ...

  9. [LeetCode] questions conlusion_InOrder, PreOrder, PostOrder traversal

    Pre: node 先,                      Inorder:   node in,           Postorder:   node 最后 PreOrder Inorde ...

  10. 笔记:yum和apt-get的区别

    rpm包和deb包是两种Linux系统下最常见的安装包格式,在安装一些软件或服务的时候免不了要和它们打交道. rpm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上, deb包 ...