python unix socket_Python之Socket-阿里云开发者社区

原理:服务端一直处理监听的状态,当客户端发起一个请求,服务端监听到请求建立连接,在建立连接时,若当前客户端没有结束,处于阻塞状态,当前的会话处于不断的交互状态,只有当前客户端结束回话后,才进行下个回话请求,若此时有另外一个连接,不会分配当前的服务端正在使用连接分配给后来的客户端绘画

通俗说理解SOCKET过程:小磊子和10086

一天小磊子打电话给10086,10086的小红接到小磊子的电话,这时候小磊子就开始发牢骚问,我这个月的电话费怎么那么多(此时就是SOCKET建立会话连接通信过程),小红听到小磊子的牢骚后,开始在后台查询小磊子这个月的电话记录情况,然后小红把查到的数据告诉小磊子(此时是客户端:请求数据-请求处理--回应数据),你这个月凌晨跟某某女生.....此时浩哥也打电话给10086,要找小红,此时小红在接客状态,在给小磊子干活,无法接通(客户端阻塞连接),浩哥不开心,因为他想查下这个月他老婆最近夜里跟谁在打电话....就随便找了小丽为浩哥服务(此时是SOCKET的并发过程)......当小磊子挂掉电话后,此时与小红断开连接(结束连接),小红才能继续接客....继续等待下一个人到来....

Socket服务端编程主要包括下面几步:

1、打开socket

2、绑定到一个地址和端口

3、侦听进来的连接

4、接受连接

5、读取数据

客户端过程:

1、打开一个socket

2、连接一个地址和端口

3、读写数据

####网络通信,有TCP/IP还有其他...

socket type:

socket.AF_UNIX:只能够用于单一的unix系统进程间通信

socket.AF_INET:服务器之间网络通信

socket.AF_NET6IPV6

###简单例子

SERVER:

import socket

host=''

port=1122

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.bind((host,port))

s.listen(1)

conn,addr=s.accept()

print "connected by",addr

while True:

data=conn.recv(1024)

if not data:break

conn.sendall(data)

conn.close()

###CLIENT:

import socket

host='127.0.0.1'

port=1122

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect((host,port))

s.sendall('hello,world')

data=s.recv(1024)

s.close()

print 'received',repr(data)

本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1868268

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值