- 1、本文档共75页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《python socket》.doc
TCP socket
在互联网上,我们可以让某台计算机作为服务器。服务器开放自己的端口,被动等待其他计算机连接。当其他计算机作为客户,主动使用socket连接到服务器的时候,服务器就开始为客户提供服务。
在Python中,我们使用标准库中的socket包来进行底层的socket编程。
首先是服务器端,我们使用bind()方法来赋予socket以固定的地址和端口,并使用listen()方法来被动的监听该端口。当有客户尝试用connect()方法连接的时候,服务器使用accept()接受连接,从而建立一个连接的socket:
# Written by Vamei# Server side
import socket
HOST = PORT = 8000
reply = Yess = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(3)
conn, addr = s.accept()
request = conn.recv(1024)
print request is: ,request
print Connected by, addr
conn.sendall(reply)
conn.close()
socket.socket()创建一个socket对象,并说明socket使用的是IPv4(AF_INET,IP version 4)和TCP协议(SOCK_STREAM)。
然后用另一台电脑作为客户,我们主动使用connect()方法来有哪些信誉好的足球投注网站服务器端的IP地址(在Linux中,你可以用$ifconfig来查询自己的IP地址)和端口,以便客户可以找到服务器,并建立连接:
# Written by Vamei# Client side
import socket
HOST = 55PORT = 8000
request = can you hear me?
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall(request)
reply = s.recv(1024)
print reply is: ,reply
s.close()
在上面的例子中,我们对socket的两端都可以调用recv()方法来接收信息,调用sendall()方法来发送信息。这样,我们就可以在分处于两台计算机的两个进程间进行通信了。当通信结束的时候,我们使用close()方法来关闭socket连接。
(如果没有两台计算机做实验,也可以将客户端IP想要connect的IP改为,这是个特殊的IP地址,用来连接当地主机。)
3. 基于TCP socket的HTTP服务器:
上面的例子中,我们已经可以使用TCP socket来为两台远程计算机建立连接。然而,socket传输自由度太高,从而带来很多安全和兼容的问题。我们往往利用一些应用层的协议(比如HTTP协议)来规定socket使用规则,以及所传输信息的格式。
HTTP协议利用请求-回应(request-response)的方式来使用TCP socket。客户端向服务器发一段文本作为request,服务器端在接收到request之后,向客户端发送一段文本作为response。在完成了这样一次request-response交易之后,TCP socket被废弃。下次的request将建立新的socket。request和response本质上说是两个文本,只是HTTP协议对这两个文本都有一定的格式要求。
request-response cycle
现在,我们写出一个HTTP服务器端:
# Written by Vamei
import socket
HOST = PORT = 8000
text_content = HTTP/1.x 200 OK
Content-Type: text/html
head
titleWOW/title
/head
html
pWow, Python Server/p
IMG src=test.jpg/
/html
f = open(test.jpg,rb)
pic_content = HTTP/1.x 200 OK
Content-Type: image/jpg
pic_content = pic_content + f.read()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
您可能关注的文档
- 《Openbox》.doc
- 《Openness to trade in manufactures in the OECD》.pdf
- 《operationalizing the translation purpose (skopos)》.pdf
- 《OPTICAL DESIGN OF SINGLE REFLECTOR》.pdf
- 《Optimization of the surface texture for silicon carbide sliding in water》.pdf
- 《Oracle VM VirtualBox 虚拟机跟主机共享文件夹》.doc
- 《oracle数据库管理工具+》.ppt
- 《Oxidation of in situ synthesized TiC particle-reinforced titanium matrix composites》.pdf
- 《O形密封圈》.doc
- 《O形密封圈的选用》.doc
- XX T 1149.11-2010 内燃机 活塞环 第11部分:楔形铸铁环正式版.doc
- XX T 1149.13-2008 内燃机 活塞环 第13部分:油环正式版.doc
- XX T 1149.12-2013 活塞环楔形钢环正式版.doc
- 人教版高中生物必修2全册教学课件.pptx
- 2025年春新北师大版8年级物理下册全册课件.pptx
- 2024年新人教版8年级上册物理全册课件.pptx
- (新统编版)语文三年级下册 第一单元 大单元教学 课件(共9课时).pptx
- 八年级语文下册第六单元24醉翁亭记课件省公开课一等奖新课获奖课件.pptx
- 八年级物理上册第六章质量与密度章末整理与复习习题省公开课一等奖新课获奖课件.pptx
- 外研版三年级英语下册期末复习单词专项.pptx
最近下载
- 附件2-钢轨焊缝超声波探伤工艺规程(20171201).doc VIP
- 长沙理工大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 制片管理PPT课件.pptx VIP
- 浅谈护士依法执业课件.pptx VIP
- 《航空与航天摄影》第1章绪论.pptx
- 招标参数实时荧光定量PCR仪比较表.xls VIP
- 期末复习之阅读理解20篇(福建名校真题)-2023-2024学年八年级英语下学期期末复习查缺补漏冲刺满分(仁爱版).docx VIP
- 肾小球疾病。(必威体育精装版文档).pptx VIP
- 部编人教版五年级下册心理健康教案(全册).pdf
- 仁爱版初中英语八年级下册(英语单词表).pdf VIP
文档评论(0)