Python socket编程基础

本文介绍了网络编程的基本组件——套接字,包括客户端和服务端的实现流程,并对比了urlib与urlib2模块的功能特点,还涉及SocketServer的不同类型及Unix中分叉与线程的区别。

socket:网络编程中的一个基本组件--套接字。

分客户端套接字、服务端套接字,客户端通过host(IP)和port(端口)找到需要连接服务端,与其进行通讯。

服务端:创建socket对象,获取主机ip,设置端口号,绑定主机和端口,持续监听请求(不需要时再关闭)

客户端:创建客户端socket对象,发送对应ip和端口号与对应服务端建立连接。

服务端

import socket

s=socket.socket()

host=socket.gethostname()

port=8088

s.bind((host,port))

s.listen(5)

while True:

    c,addr=s.accept()

    print("来自这里的连接:"),addr

    c.send("连接成功")

    c.close()

客户端

import socket

s=socket.socket()

host=socket.gethostname()

port=8088

s.connect((host,port))

print s.recv(1024)


urlib、urlib2这两个模块可以在网络上访问文件,方式urlopen(url),

当需要使用HTTP验证或cookie时:urlib2更适合


SocketServer:包括TCPServer、UDPServer、UnixStreamServer、UnixDatagramServer(其中TCP流式套接字更常用)


关于Unix中的分叉和线程区别:线程需要考虑同步,分叉不需要考虑。分叉更耗资源

SocketServer线程处理:让Socket实现类继承ThreadingMixIn



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值