首页 > 其他分享 >10月23日简易服务器与客户端通信

10月23日简易服务器与客户端通信

时间:2023-10-23 14:47:30浏览次数:28  
标签:10 soc socket 23 shuju 服务器 conn 客户端

目录

简易服务器与客户端通信

此代码可以用于两者互相通信(就是互相发信息)

服务器代码

#导入一个socket模块来建立一个简单的通信服务器
import socket

#socket.AF_INET表示使用 IPv4 地址族,这是 Internet 上常用的地址族。socket.SOCK_STREAM 表示创建一个基于 TCP 协议的 Socket 对象
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#相当于绑定ip地址和端口号  将两者以元组的形式写进去
soc.bind(('172.17.8.49', 8080))  #如果写本机ip,外部可以访问
# soc.bind(('127.0.0.1', 8080))   #如果写127.0.0.1,只能自己访问

#开启服务器
soc.listen(5)#这个5是半连接池的大小

#等待客户端发送请求
conn, addr = soc.accept()#conn表示新的socket对象,addr表示客户端的地址信息

print('有个客户端连接上了', addr)
while True:
    # 接收客户端的数据
    data = conn.recv(1024)  # recv就是接收的作用,里面1024指能接收1024个字节,data指的是客户端发过来的数据
    # 解码收到的字节串以还原文本
    huanyuan = data.decode('utf-8')

    print(f'收到客户端的信息:{huanyuan}')  # 这里是给这个客户端发来的请求输出出来

    # 将文本编码为字节串(UTF-8编码)
    shuju = input('回复:')
    shuju = shuju.encode('utf-8')

    # conn.send 是发数据,数据必须是bytes格式也就是b'内容'
    conn.send(shuju)

#关闭与客户端的连接
conn.close()
#关闭服务器的主要通信端口
soc.close()

然后是客户端的代码


#导入socket方法
import socket

#创建一个socket对象
soc = socket.socket()

#连接服务器(以元组的形式传进去)
soc.connect(('172.17.8.49', 8080))

while True:
    # 将文本编码为字节串(UTF-8编码)
    shuju = input('输入:')

    # 这里给服务器发送数据
    soc.send(shuju.encode('utf-8'))
    # 接收来自服务器的数据,同时把数据赋值给data这个变量
    data = soc.recv(1024)

    # 解码收到的字节串以还原文本
    huanyuan = data.decode('utf-8')

    print(f'收到服务器的回复:{huanyuan}')  # 这里是把这个服务器发来的请求输出出来


#关闭连接与服务器的连接,释放资源
soc.close()

标签:10,soc,socket,23,shuju,服务器,conn,客户端
From: https://www.cnblogs.com/slzjb/p/17782338.html

相关文章

  • centos 6.10 安装 boost 1.78.0
    centos6.10安装boost1.78.0下载地址找到对应的版本,下载源码,而不是二进制文件。解压文件cdboost_1_78_0./bootstrap.sh./b2install-perfix/usr/local/boost1.78.0/......
  • laravel:中间件给controller传递参数(10.27.0)
    一,相关文档https://learnku.com/docs/laravel/10.x/middleware/14846二,php代码1,middleware12345678910111213141516171819202122232425<?php namespaceApp\Http\Middleware; useClosure;useIlluminate\Http\Request;useS......
  • 议题征集|The Open Group 2023亚太区年度颁奖盛典暨ESG架构年度大会诚邀演讲嘉宾!
    每个人心中都有各自对ESG架构管理的想象与理解我们期待用一场汇聚真知灼见与探索实践的盛典重新定义架构的奇妙▼ 在全球可持续发展浪潮下,ESG目标(环境、社会和治理)的重要性愈发凸显。越来越多的企业认识到,以ESG为基础的商业模式能够为组织带来更长远、可持续的价值。在实现ESG可持......
  • 2023 CSP-S 游记
    由于最近事情非常多,很是忙碌,而此贴尚未完工,所以先把坑位挖出来。另外,退役杂谈也在同期施工中。Day-21报名了洛谷网校的秋令营,期望能够对重点板块进行查缺补漏。居然有几百号人参加,属实壮观。chen_zhe直接在普及组演示如何网校后台禁言,非常的恐怖,不过我的评价是,好似。扶苏......
  • CSP2023 游记
    不会有人还写CSP游记吧……玩原神的叫原p,玩方舟的叫舟p,那么玩cs-go的嘞?Day-1上午一场模拟赛,ex题打稀烂,恼。无妨,就当攒rp了。下午争取到体活整理东西,然后就是复习各种板子,然后就是被自己曾经的马蜂震撼到。真不知道说啥,考前写这玩意的目的就是把今天的时间混到9......
  • 2023 CSP 游记
    Day-11找到zxc,然后就到了石门,很爽,旷了两天的语文作业。Day-11~-5gj模拟赛,每天都被薄纱,很自闭,wzr场场ak。带领lsy和lhy板刷黑题,恐怖,于是我只能加入,然后退出。第二个星期初二也来了,机房人满为患,带来了三国杀,每天中午和下午都在打,但是好像现在宿舍里都不会打?,紧接着发......
  • centos 6.10 安装 swig 4.0.2
    centos6.10安装swig4.0.2下载地址解压文件。执行下面命令cdswig-4.0.2./configure--prefix=/usr/local/swig-4.0.2make&&makeinstall......
  • 如何在PS2023中安装神经网络滤镜离线安装包
    首先我们作一下简单介绍,NeuralFilters(神经网络滤镜)是从PS2021版本才开始有的,说白了就是Adobe研制的一款智能滤镜库,其实就是AI吧。NeuralFilters通过生成新的像素来帮助我们优化、处理和修改图像,新产生的像素不会存在于原始图像中。目前PS2023版本中有12款NeuralFilters滤镜。主......
  • AutoCAD2023软件安装教程及安装包下载
    由“Autodesk”公司研发推出的AutoCAD202364位简体中文版已于2022年3月已经正式发布,AutoCAD是一款全球领先的计算机辅助设计(CAD)软件,全新的2023版本拥有着非常强大的渲染、绘图和三维打印功能,还提供了动态块、文本设定、数据提取、三维导航、截面平面、DWG比较、云存储连接......
  • laravel:单元测试之http测试(10.27.0)
    一,相关文档:https://learnku.com/docs/laravel/10.x/http-tests/14896二,php代码:1,创建test程序liuhongdi@lhdpc:/data/laravel/dignews$phpartisanmake:testNewsTest   INFO  Test[tests/Feature/NewsTest.php]createdsuccessfully.2,代码:12345......