python简单socket demo

news2025/1/16 19:01:57

socket说明

socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。除了常见的http请求之外,一些敏感的数据传输常用socket套接字层直接传输数据。一个简单的domo用于熟悉socket的工作方式。

代码

server服务端

# 导入socket
import socket

# 设置代理地址
ip_port = ('127.0.0.1', 8888)

# 创建一个socket的对象
s = socket.socket()
# 绑定ip和端口
s.bind(ip_port)

# 开启监听
s.listen()

print("等待用户连接中")

while(True):
    conn, addr = s.accept()
    if conn is not None:
        # print(addr)
        print('有一个用户连接\n等待对方发送信息')


    while (True):

        try:
            recv_data = conn.recv(1024)


            # 显示接收的信息
            print('对方发送的信息:', str(recv_data, encoding='utf-8'))
            send_data = input('我回复>>').strip()

            conn.send(bytes(send_data, encoding='utf-8'))
            print('等待对方发送信息>>')
        except Exception:
            print('远程主机强迫关闭了一个现有的连接,续继等待其它的连接。')
            break
    conn.close()




client客户端

# 客户端

import socket

# 待建立连接HOST的ip/port
ip_port = ('127.0.0.1', 8888)
# 建立socket
s = socket.socket()
# 建立连接
s.connect(ip_port)
while (True):
    # 待发送的信息
    send_data = input('给对方发送信息:').strip()
    s.send(bytes(send_data, encoding='utf-8'))
    print('等待对方回复:')
    # 接收信息并显示
    recv_data = s.recv(1024)
    print("recv_data内容: ", recv_data)

    print('你有新的消息:', str(recv_data, encoding='utf-8'))
s.close()

效果

在这里插入图片描述

参考文章

https://blog.csdn.net/lxy210781/article/details/80641910

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1416755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Micropython利用ESP32-C3墨水屏电子时钟方法

本篇笔记介绍一下我们设计制作的墨水屏时钟。 1、所需硬件 1)合宙的ESP32-C3: 2)电子价签拆出来的2.9寸墨水屏: ——电子价签型号为:Stellar-L,墨水屏型号为:E029A01。 3)自己设计…

我的2023年度总结

今天和去年一样,没有目录,正文开始: 距离上次更新博客已经过去很久了 我们还是不忘初心,先推荐一本书《培根随笔》。最近有想看马克思的著作,马哲才是世界大法。 这一年,过得很快。如果没有保持写日记的习惯…

多文件开发

当所有的类都写在main.m这个源文件之中、将不利于后期的维护和团队开发 推荐的方式 把1个类写在1个模块之中,而1个模块至少包含两个文件 h头文件 1.写的类声明因为要用到Foundation框架中的类NS0 bject所以在这个头文件中要引入 Foundationa 2.框架的头文件 3.然后…

1.23神经网络框架(sig函数),逆向参数调整法(梯度下降法,链式法则(理解,及处理多层神经网络的方式))

框架 输入层 隐藏层 存在一个阈值,如果低于某一阈值就不激活;高于了就激活 输出层 逆向参数调整方法 初始阶段,随机设置权重值w1,w2 依据训练集 两个数学方法 (梯度下降、链式法则) 调参借助两个数学方法 当导数为…

【归并排序】【图论】【动态规划】【 深度游戏搜索】1569将子数组重新排序得到同一个二叉搜索树的方案数

本文涉及知识点 动态规划汇总 图论 深度游戏搜索 归并排序 组合 LeetCoce1569将子数组重新排序得到同一个二叉搜索树的方案数 给你一个数组 nums 表示 1 到 n 的一个排列。我们按照元素在 nums 中的顺序依次插入一个初始为空的二叉搜索树(BST)。请你统…

了解OpenCV的数据类型

OpenCV是一个开源的计算机视觉库,广泛应用于图像和视频处理领域。在OpenCV中,数据类型扮演着非常重要的角色,它们决定了数据的存储方式和操作方式。本文将介绍OpenCV中常见的数据类型,包括图像数据类型、矩阵数据类型和轮廓数据类…

线程调度(Java Android)

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览2.1、线程的属性 三、…

Dockerfile简介和基础实践

文章目录 1、Dockerfile简介1.1、Dockerfile解决的问题1.2、docker build 构建流程1.3、关键字介绍 2、Dockerfile 实践2.1、基本语法实践 --- golang2.1.1 问题检查 2.2、基本语法实践 --- gcc 总结 1、Dockerfile简介 Dockerfile是一个创建镜像所有命令的文本文件, 包含了一…

C++进阶(七)AVL树

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、AVL树的概念二、AVL树的旋转1、左单旋2、右单旋3、左右双旋4、右左双旋 三、AVL树的基本实…

PCL Kdtree 使用示例

PCL Kdtree 使用示例 文章目录 PCL Kdtree 使用示例一、关于 KDTree二、关于最近邻搜索三、复杂度分析四、C代码示例五、关键函数说明nearestKSearch 函数说明 一、关于 KDTree 点云数据主要是, 表征 目标表面 的海量点集合, 并不具备传统实体网格数据的…

Hive中left join 中的where 和 on的区别

目录 一、知识点 二、测试验证 三、引申 一、知识点 left join中关于where和on条件的知识点: 多表left join 是会生成一张临时表。on后面: 一般是对left join 的右表进行条件过滤,会返回左表中的所有行,而右表中没有匹配上的数…

【Git】项目管理笔记

文章目录 本地电脑初始化docker报错.gitignoregit loggit resetgit statusgit ls-filesgit rm -r -f --cached拉取仓库文件更新本地的项目报错处理! [rejected] master -> master (fetch first)gitgitee.com: Permission denied (publickey).error: remote origin already e…

linux进程(上)

目录 进程的概念 进程的状态 进程状态的理解 特殊的进程 本期我们将进行linux进程的学习。 进程的概念 我们或多或少都听说过进程的概念,但是在操作系统中,进程到底是什么呢? 进程就是程序的一次执行过程。 一个程序要被执行&#xff…

NLP自然语言处理的发展:从初创到人工智能的里程碑

自然语言处理(Natural Language Processing,NLP)人工智能领域中备受关注的重要分支之一。它使得计算机能够理解、解释和使用人类语言。随着技术的不断发展,NLP经历了从初创时期到深度学习时代的巨大演变,推动了互联网产…

AWS云用户创建

问题 需要给工友创建AWS云的用户,这里假设使用分配给自己AWS开发者IAM账号,给别人创建aws IAM账号。 登录系统 打开页面:https://xxx.signin.aws.amazon.com/console,使用分配的开发者账号登录。如下图: 创建用户…

有手就行!阿里云上3分钟搞定幻兽帕鲁联机服务器搭建

幻兽帕鲁最近在社区呈现了爆火的趋势,在线人数已突破百万级别,官方服务器也开始出现不稳定,卡人闪退的情况。对于有一定财力的小伙伴,搭建一个私人服务器是一个最稳定而舒服的解决方案。 本文萝卜哥将讲解一下如何快速搭建 palwo…

【技能---ubuntu上的github常用命令及其将自己的文件夹上传流程】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言GitHub 作用github常用命令ubuntu上传自己的文件夹到github上1.创建远程仓库2. 生成token3. 上传本地代码 总结 前言 随着自己的代码越来越多,需要…

在线小学数学作业练习册出题网站源码,支持打印转成PDF

源码介绍 小学数学出题网页版源码,加减乘除混合运算,支持自定义数字、小数、混合运算,支持加减乘除运算混合多选(一道题中同时随机出现加减乘除运算符)支持自定义出题数量,支持一键打印成pdf,支…

k8s-配置管理

一、ConfigMap 1.1 创建ConfigMap 1.2 在环境种使用ConfigMap ConfigMap最为常见的使用方式就是在环境变量和Volume中引用。 1.3 在Volume中引用ConfigMap 在Volume中引用ConfigMap,就是通过文件的方式直接将ConfigMap的每条数据填入Volume,每条数据是…

统计学-R语言-8.1

文章目录 前言方差分析方差分析的原理什么是方差分析误差分解 单因子方差分析数学模型效应检验 练习 前言 本片开始介绍有关方差分析的知识。 方差分析 方差分析的基本原理是在20世纪20年代由英国统计学家Ronald A.Fisher在进行实验设计时为解释实验数据而首先引入的。方差分…