版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【任务9-1】实现客户端与服务器之间通信【任务描述】(1)在PyCharm集成开发环境中创建项目Unit09。(2)在项目Unit09创建“9-1server.py”和“9-1client.py”两个Python程序文件。(3)编写程序使用socket实现TCP服务器端与客户端之间的通信,即客户端向服务器发送文字,服务器端接到消息后,显示消息内容并且输入文字返回给客户端。客户接收到响应,显示该文字,然后继续向服务器发送消息,这样,就可以实现一个简易的聊天程序。当输入“exit”时,则退出系统,中断聊天。【任务实施】1.创建PyCharm项目Unit09成功启动PyCharm后,在指定位置“D:\PycharmProject\”,创建PyCharm项目Unit09。2.创建Python程序文件9-1server.py在PyCharm项目“Unit09”中,新建Python程序文件“9-1server.py”。【任务实施】3.编写Python程序代码在新建文件“9-1server.py”的代码编辑窗口输入程序代码。importsocket#导入socket模块try:host=socket.gethostname()#获取主机地址
port=1818#设置端口号
sock1=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建TCP/IP套接字
sock1.bind((host,port))#绑定地址(host,port)到套接字
sock1.listen(1)#设置最多连接数量
print(host,"在监听…")sock=sock1.accept()[0]#被动接受TCP客户端连接
print("连接已经建立")info=sock.recv(1024).decode()#接收客户端数据whileTrue:#判断是否退出
ifinfo:print("收到客户端请求的内容:"+info)sendData=input("服务器端回复的内容:")#发送消息
sock.send(sendData.encode())#发送TCP数据
ifsendData=="exit":#如果发送byebye,则退出
breakinfo=sock.recv(1024).decode()#接收客户端数据
sock.close()#关闭客户端套接字
sock1.close()#关闭服务器套接字exceptExceptionaserror:print(error)【任务实施】4.创建Python程序文件9-1client.py在PyCharm项目“Unit09”中,新建Python程序文件“9-1client.py”。5.编写Python程序代码在新建文件“9-1client.py”的代码编辑窗口输入程序代码。importsocket#导入socket模块input("按任意键开始连接服务器...")try:sock=socket.socket()#创建TCP/IP套接字
host=socket.gethostname()#获取主机地址
port=1818#设置端口号
sock.connect((host,port))#主动初始化TCP服务器连接
print("成功连接服务器")info=""whileTrue:#判断是否退出
sendData=input("客户端请求的内容:")#输入内容
sock.send(sendData.encode())#发送TCP数据
ifsendData=="exit":#判断是否退出
breakinfo=sock.recv(1024).decode()#接收服务器数据
print("收到服务器回复的内容:"+info)sock.close()#关闭套接字exceptExceptionaserror:print(error)单击工具栏中【保存】按钮,分别保存“9-1server.py”和“9-1client.py”两个程序文件。【任务实施】6.运行Python程序运行程序之前,先打开2个Windows命令行窗口,第1个命令行窗口模拟TCP服务器端,第2个命令行窗口模拟TCP客户端。在第1个命令行窗口的提示符“>”后输入命令:pythonD:\PycharmProject\Unit09\9-1server.py,开始运行9-1server.py程序,【任务实施】6.运行Python程序此时该窗口中会出现“MS-201705281819在监听…”的提示文字。然后在第2个命令行窗口的提示符“>”后输入命令:pythonD:\PycharmProject\Unit09\9-1client.py,开始运行9-1client.py程序,此时该窗口中出现“按任意键开始连接服务器...”提示文字,按【Enter】键或其他任意键后第1个命令行窗口出现“连接已经建立”的提示文字,第2个命令行窗口出现“成功连接服务器”的提示文字。【任务实施】6.运行Python程序在第2个命令行窗口中提示文字“客户端请求的内容:”后输入“Hi,hello.”,再按【Enter】键,此时第1个命令行窗口中会接收到客户端发来的数据,出现“收到客户端请求的内容:Hi,hello.”的内容,程序运行时分别在模拟TCP服务器端和模拟TCP客户端发送或收到的信息如表所示。客户端收到与发送的信息服务器端发送与收到信息发送的信息Hi,hello.收到的信息Hi,hello.收到的信息Nicetohearfromyou发送的信息Nicetohearfromyou发送的信息Wishesyoutobehappydaily!收到的信息Wishesyoutobehappydaily!收到的信息Thankyou!Happyeveryday发送的信息Thankyou!Happyeveryday发送的信息byebye收到的信息byebye收到的信息byebye发送的信息byebye发送的信息exit收到的信息exi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年出版资格考试中级理论与实务试题及答案
- 2026年高压电工操作证理论全国考试题库(含答案)
- 智慧停车系统安装调试施工方案及技术措施
- 2025-2026学年五年级下学期统编版语文单元练习卷 第四单元(含答案)
- 2025-2026学年灯光教案app
- 2023九年级数学下册 第26章 二次函数26.3 实践与探索第1课时 二次函数与实际问题教学设计 (新版)华东师大版
- 2025-2026学年教育学及教学设计英语
- 2025-2026学年困难大突破教案
- 2025-2026学年欢庆教学设计色彩作业
- 2025-2026学年教学设计接受自己
- DL-T596-2021电力设备预防性试验规程
- 模具确认清单
- 权责分立与基层避责一种理论解释
- 2024年中国融通医疗健康集团有限公司招聘笔试参考题库含答案解析
- 医疗器械临床试验质量管理规范培训
- 2022新版语文课程标准初中段(7-9年级)课程目标
- 学堂在线西南科技大学人工智能基础(2022秋)期末考试题答案
- 交通运输方式的选择
- 公司员工手册范本模板
- 水工建构筑物维护检修工职业技能标准(征求意见稿)
- 企业创立与运营模拟概述
评论
0/150
提交评论