Python Socket学习之旅(二)

  • Socket函数

注解:

Socket的close和shutdown--结束数据传输: close-----关闭本进程的socket id,但链接还是开着的,用这个socket id的其它进程还能用这个链接, 能读或写这个socket id shutdown--则破坏了socket 链接,读的时候可能侦探到EOF结束符,写的时候可能会收到一个 SIGPIPE信号,这个信号可能直到socket buffer被填充了才收到,shutdown还有一个关闭方式的参数, 0 不能再读,1不能再写,2 读写都不能。 多进程应用:

1.如果有多个进程共享一个套接字,close每被调用一次,计数减1,直到计数为0时,也就是所用进 程都调用了close,套接字将被释放。

2.在多进程中如果一个进程中shutdown(sfd, SHUT_RDWR)后其它的进程将无法进行通信。如果一 个进程close(sfd)将不会影响到其它进程。

  • Socket编程思想

TCP服务端:

1 创建套接字,绑定套接字到本地IP与端口 # socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.bind()

2 开始监听连接 #s.listen()

3 进入循环,不断接受客户端的连接请求 #s.accept()

4 然后接收传来的数据,并发送给对方数据 #s.recv() , s.sendall()

5 传输完毕后,关闭套接字 #s.close()

TCP客户端:

1 创建套接字,连接远端地址 # socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.connect()

2 连接后发送数据和接收数据 # s.sendall(), s.recv()

3 传输完毕后,关闭套接字 #s.close()

原文地址:https://www.cnblogs.com/IT-LearnHall/p/9426038.html

时间: 2024-08-01 18:57:48

Python Socket学习之旅(二)的相关文章

滴滴Booster移动APP质量优化框架 学习之旅 二

推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 续写滴滴Booster移动APP质量优化框架学习之旅,上篇文章分析内置的transform:booster-transform-shrink booster-transform-shared-preferences,今天分析booster-task-compression以及定制task对资源索引文件resource.asrc进行优化(重复资源优化.无用资源优化

Python入门 学习笔记 (二)

今天学习了一些简单的语法规则,话不多说,开始了: 二.数据类型 常用数据类型中的整形和浮点型就不多说了. 1.字符串 字符串是用 ‘’ 或者“” 括起来的任意文本,比如’dfjksj’,”tijdkf”. 如果字符串中有’或者"都需要使用\转译,比如,Lily said "I’m OK” 书写方式为:’Lily said \”I\’m OK\"' 也可以使用raw字符串,如果一个字符串中包含很多需要转义的字符,对每个需要转义的字符都做操作很复杂,这时候就需要使用raw字符串,

python scrapy学习笔记(二)

使用scrapy批量抓取,参考http://python.jobbole.com/87155 一.创建项目 # scrapy startproject comics 创建完成后的目录结构 . ├── comics │   ├── __init__.py │   ├── items.py │   ├── middlewares.py │   ├── pipelines.py │   ├── settings.py │   └── spiders │       └── __init__.py └─

Python的学习之旅———Hello Python

Python是一门编程语言,用来编写命令,从而指挥计算机工作. 就像人类语言有汉语.英语.法语.斯瓦西里语等等.编程语言也有很多种(c.c++.java等等)而python就是其中的一种.如汉语经历文言文.白话文.普通话一样,编程语言也经历了机器语言.汇编语言.高级语言三个阶段.而高级语言更贴近人类语言(为毛是英语),所以编程语言必须被翻译成二进制后才能被计算机理解和执行.而按照编程语言的翻译方式分为: 1.编译型语言(需要编译器,相当于某雷下载:全下载完了才能看):如C,执行速度快(可以随便快

开始python语言学习之旅

上学期刚刚学完C语言,虽然对编程挺感兴趣的,能自己编写程序来解决问题,想想就兴奋.可是学完了一学期的C语言发现自己会的只是一点点,更不用说自己编写程序来解决问题.不过学了python还没两周我就可以画出几何图形,还可以控制电脑让它给我播放音乐,毫无疑问我已经被python深深吸引了.为了更好的学习这门课,提升我们的学习兴趣,我希望老师多给我们举一些实用的例子,还有就是教会我们用电脑思维来解决问题.提升我们的见识面,结合生活让python无处不在!在这里先谢谢我们的肖老师.

python的学习之旅(一)

首先先介绍下本人,本人名叫杜邱,别名也叫故都的秋,网络工程专业毕业,现就职一家电子商务公司,已经三年了,起初从一个小小的网管做起,一台路由器,一台交换机,下面连着50几台电脑,三年过去了,慢慢的也在成长,装过监控,管过服务器,弄过网络,杀过木马!基本现在在公司也就处于不上不下的状态.公司不大,事却不少,搭建过微软的AD域控.sccm,弄过企业杀毒,存储备份!随着服务器与网络设备越来越多,渐渐的感觉到力不从心!所以报了老男孩python自动化培训班,开始学习python,以前没写过博客,如果写的不

Python的学习之旅———第一个程序

基本上学习语言第一个程序都是打印"hello world".Python实现这个操作,就跟说话一样. print('hello world') 我们可以直接进入解释器的交互模式,有点事调试方便,但是永久保存代码,还可以用脚本文件的方式,有点是可以保存代码.通常定义文本以.py作为结尾. 也可以去安装JetBrains PyCharm 2017 IDE (集成开发环境IDE,Integrated Development Environment ),用他来编写调试更爽.可以极大的提高开发效

Python 3 学习笔记(二)----数据类型

一.初识模块2 标准库: sys模块: 1 import sys 2 3 print(sys.path) #新建文件名不能与导入的模块名相同 4 print(sys.argv) os模块: 1 import os 2 3 cmd_res = os.system("dir")#执行命令,不保存结果 4 cmd_res = os.popen("dir").read() 5 print("-->",cmd_res) 6 7 os.mkdir(&q

python的学习之旅---Mysql数据库

1 什么是数据库(DataBase,简称DB) 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的 过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用 数据库是长期存放在计算机内.有组织.可共享的数据即可. 数据库中的数据按一定的数据模型组织.描述和储存,具有较小的冗余度.较高的数据独立性和易扩展性,并可为各种 用户共享 2 什么是数据库管理系统(DataBase Management System 简称DBMS) 在了解了Data与DB的概念后,如