Python之路【第七篇】:初识Socket
What is Socket
第一个Socket代码
#!/usr/bin/env python
#-*- coding:utf-8 -*- import socket
#创建socket对象
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#设置监听的IP与端口
sk.bind(('127.0.0.1',6666))
#设置client最大等待连接数
sk.listen(5) while True: #循环
print 'waiting client connection .......'
#只有accept & recv 会阻塞,这里accept阻塞,直到有client连接过来
#connection代表客户端对象,address是客户端的IP
connection,address = sk.accept()
#等待接收客户端信息
client_messge = connection.recv(1024)
#打印客户端信息
print 'client send messge',client_messge
#发送回执信息给client 收发必须相同
connection.sendall('hello Client this server')
#关闭和client的连接
connection.close()
socket_server
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import socket
#创建socket对象
ck = socket.socket()
#通过IP&端口连接server
ck.connect(('127.0.0.1',6666))
#发送消息给服务端
ck.sendall('hello server this is Clinet')
#接收服务端的消息并打印
server_answer = ck.recv(1024)
print server_answer
#关闭连接
ck.close()
socket_client
为了更加清晰,绘图如下:
aaarticlea/png;base64,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ikg0KPgWEZEWw+fzsWHDhsqAO5r9uevjjTfeYNeuXfz+97/n4MGDXH755dx6660sXryYw4cPs3jxYjIyMnj66acpKiriuuuu47rrrgMsm7106VKmT5/O3LlzKzPfjz76KP/1X/8FwK9//euw83377bfce++9PProo5XB9PHjx/ntb3/LlClTKpu7V3XgwAEefvhhHnnkkWrrysvL+fvf/06/fv3O6rURERGRcAq+RRpId4lFouvrr79mzZo1/PGPf2Tp0qUcPXr0tI9RW1a4IW6//XbWrVvHgw8+yK233kqfPn245557GDJkCBdccAHbtm0jIyODnTt3Mn78+Hod85///Gdl8P2b3/ymcvmKFSv49a9/zY9+9CNGjRpVubxTp0787Gc/4+9//zv//u//zu9+9zsSExMr1/t8Pg4fPsxHH31EmzZtqp1v8uTJpKSkANG7Tg3xq1/9SvWsSJTpb0ykcSj4FhGRZs/pdOJ0Omttmt0UBg4cyI9//GMef/xxfvWrXzF58mRGjRpFamoqr732GsuXL2fMmDGsWrWKn/70pwB4PB62b99OWVkZt99+O4cOHWLWrFk4HA4ACgoK+O53v1t5jgcffJBNmzbx7LPP8sc//pEFCxbgcrm49tprAfjss8947LHHePnll/n5z3/Or371K/77v/+7cv9Dhw6RlJQUMfD2+/0UFhZGXCciIiJnl4JvERFp1pxOJyNGjGDEiBH89Kc/ZfPmzZUDq+3fv79ex4hWVmf69Ok8+eST7N+/n88//5y//OUvADzzzDNMmTKFv/71r2RnZ9OjRw86duyIx+Nh+vTp9OvXj5iYGB5++GHuvvtu3nzzzcobC1OmTOHtt98OO098fDyTJk0iKyuLlJQU/vVf/5VJkyaRnJzM//zP//Av//IvJCUl8fjjj1drGZCTk0NWVlbE8hcVFQFUZr6V/RIREYkeBd8iItKshQ4E5HA4GDhwYGXGeceOHZX9vxtrhPNQ8+bNY+bMmbzxxhtkZ2ezefNmHnjgAdq0aYPT6WTixIn893//N//7v/8LQExMDO+88w5gfb67du2Kx+PB5XJx4403Apb5DjzPysriT3/6EwMHDqw8Z79+/bjqqqv4z//8T7p160a3bt247LLLAIiNja0WaJeWlnLo0KGI0475fD5SU1Mrs+4icm7SgGsijUPBt0gD6T8skabh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" alt="" />
socket创建参数详解:
server端:
#创建socket对象
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#socket.AF_INET 参数一
#socket.SOCK_STREAM 参数二
参数一:地址簇
socket.AF_INET IPv4(默认)
socket.AF_INET6 IPv6
socket.AF_UNIX 只能够用于单一的Unix系统进程间通信
参数二:类型
socket.SOCK_STREAM 流式socket , for TCP (默认)
socket.SOCK_DGRAM 数据报式socket , for UDP
socket.SOCK_RAW 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。
socket.SOCK_RDM 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。
socket.SOCK_SEQPACKET 可靠的连续数据包服务
参数三:协议
0 (默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议
在创建socket对象的时候一般使用默认即可:sk = socket.socket()
#sk.bind(address) s.bind(address) 将套接字绑定到地址。address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。 #sk.listen(backlog) 开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。 backlog等于5,表示内核已经接到了连接请求,但服务器还没有调用accept进行处理的连接个数最大为5
这个值不能无限大,因为要在内核中维护连接队列 #sk.setblocking(bool) 是否阻塞(默认True),如果设置False,那么accept和recv时一旦无数据,则报错。 #sk.accept() 接受连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址。 接收TCP 客户的连接(阻塞式)等待连接的到来 #sk.connect(address) 连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 #sk.connect_ex(address) 同上,只不过会有返回值,连接成功时返回 0 ,连接失败时候返回编码,例如:10061 #sk.close() 关闭套接字 #sk.recv(bufsize[,flag]) 接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略。 #sk.recvfrom(bufsize[.flag]) 与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。 #sk.send(string[,flag]) 将string中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于string的字节大小。即:可能未将指定内容全部发送。 #sk.sendall(string[,flag]) 将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。成功返回None,失败则抛出异常。 内部通过递归调用send,将所有内容发送出去。 #sk.sendto(string[,flag],address) 将数据发送到套接字,address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。该函数主要用于UDP协议。 #sk.settimeout(timeout) 设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如 client 连接最多等待5s ) #sk.getpeername() 返回连接套接字的远程地址。返回值通常是元组(ipaddr,port)。 #sk.getsockname() 返回套接字自己的地址。通常是一个元组(ipaddr,port) #sk.fileno() 套接字的文件描述符
参考资料:
http://www.cnblogs.com/wupeiqi/articles/5040823.html
http://baike.baidu.com/link?url=TirxwGEE0_cVLvQHkGugEDtXg1X4S4r7O8fATL6KJcJhRuYYrtRz7UhG0RBekqYTU7p5u3gOMdx5Kq9eb8Ix9-C0_eybcUcBZOiH0XEWbQq
Python之路【第七篇】:初识Socket的更多相关文章
- 【Python之路】第二篇--初识Python
Python简介 Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube.D ...
- Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...
- Python开发【第七篇】:面向对象 和 python面向对象进阶篇(下)
Python开发[第七篇]:面向对象 详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇) 上一篇<Python 面向对象(初级篇)> ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python开发【第七篇】:面向对象
Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否 ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python 第七篇:socket编程
一:socket基础: 1.1:Socket基础: socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用[打开][读写][关闭]模式来操作.socket就是该模 ...
- Python之路【第一篇】:Python前世今生
Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- Python之路【第一篇】:Python基础1
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路【第一篇】:Python基础
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
随机推荐
- mysql-函数if多值多结果判断
if语句 案例:同样统计男女生人数,语句如下: ,)) 男生数,,)) 女生数, ,,)) pass1,,,)) pass0, ,,)) state1,,,)) state0 FROM sch GRO ...
- 控件 UI: StateTrigger
VisualState 之 StateTrigger 示例1.自定义 StateTriggerControls/UI/VisualState/MyDeviceFamilyStateTrigger.cs ...
- 如何提高redmine的访问速度
刚开始使用redmine时 方法一: 可以采用nginx+passenger的方式来驱动redmine提升访问速度,但是在新建问题或更新问题时变得非常慢,这是因为在新建问题和更新问题时会发送邮件,而且 ...
- Jenkins用HTTP Request Plugin插件进行网站的监控(运维监控)
使用的插件: [HTTP Request Plugin] 思路: 说明:只能是网站是否正常打开,而不能是这个网站业务是否正常,如果是后者,则需要写特定的接口进行请求处理. 1.通过插件,发送GET请求 ...
- install docker on xubuntu
ref: https://docs.docker.com/engine/installation/linux/ubuntulinux/#/install-the-latest-version ps: ...
- CodeForces 209C Trails and Glades
C. Trails and Glades time limit per test 4 seconds memory limit per test 256 megabytes input standar ...
- Ubuntu 使用笔记
持续更新 从前使用sudo apt update更新时, 发现软件源是cn.archive.ubuntu.com. 最近在system setting 中将软件源改成了archive.ubuntu.c ...
- Sublime Text以及Package Control安装方法
官方下载:Sublime Text 中国论坛:Sublime 论坛 Sublime Text 是一个代码编辑器,具有漂亮的用户界面和强大的功能,并且它还是一个跨平台的编辑器,同时支持Windows.L ...
- [Android]Volley源码分析(三)
上篇看了关于Request的源码,这篇接着来看下RequestQueue的源码. RequestQueue类图:
- BZOJ3697: 采药人的路径
传送门 不是那么裸的点分治. $f[i][0/1]$表示当前节点的一个子树中总权值和为$i$,且是否存在一个前缀使得其前缀和为$i$ $g[i][0/1]$表示当前节点的已遍历过的子树,其余一样. 对 ...