SOCKET建立简单的tcp服务端与客户端通信

embedded/2025/2/21 2:30:43/

socket是什么

socket可以使两台机子建立连接,就像连接风扇与电源的插座一样,socket可以使服务端与客户端建立连接,服务端就像供电厂,而客户端就像用电器,而socket就是连接二者的插座。

建立简单的连接

  1. 如果我们想在客户端与服务端建立连接收发数据就需要分别执行socket方法。
    在这里插入图片描述

  2. 服务端依次执行bind() linten() acctpt()

在这里插入图片描述

  1. 客户端执行connect()请求与服务端连接在这里插入图片描述
  2. 之后服务端与客户端都可以执行send() recv()发送与接收消息

python实现

server

  1. socket()
  2. bind()绑定ip和端口
  3. listen()监听
  4. accept()等待连接。返回新的socket对象(用于收发数据)与addr(存有客户端IP与PORT)
  5. send()/recv()
  6. close()
import socketIP = '0.0.0.0'
PORT = 50000
BUF_LEN = 512listenSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)listenSocket.bind((IP, PORT))listenSocket.listen(5)
print('[*] Socket is listening..')
data, addr = listenSocket.accept()
print('[*] Got connection from', addr)
while True:received_data = data.recv(BUF_LEN)if not received_data:breakinfo = received_data.decode()print(f'[*] Received {info}')data.send(f'服务端收到消息{info}'.encode())data.close()
listenSocket.close()

client

  1. socket()
  2. connect()申请连接
  3. send()/recv()
  4. close()
import socketIP = '127.0.0.1'
PORT = 50000
BUFFER_SIZE = 512dataSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)dataSocket.connect((IP, PORT))while True:toSend = input('Enter a message to send: ')if toSend == '':breakdataSocket.send(toSend.encode())receivedData = dataSocket.recv(BUFFER_SIZE)if not receivedData:breakprint(receivedData.decode())dataSocket.close()

http://www.ppmy.cn/embedded/163957.html

相关文章

Docker 与持续集成 / 持续部署(CI/CD)的集成(一)

一、引言 在当今快速发展的软件开发领域,高效、可靠的开发与部署流程是企业保持竞争力的关键。Docker 与持续集成 / 持续部署(CI/CD)的集成,正成为众多开发团队提升效率、优化流程的重要手段。 Docker 作为一种开源的容器化平台…

C#中反射的原理介绍及常见的应用场景介绍

反射(Reflection)是C#中的一种机制,允许程序在运行时获取类型信息并动态调用其成员。通过反射,程序可以访问程序集、模块、类型及其成员(如方法、属性、字段等),并能在运行时创建对象、调用方法…

LeetCode-633. 平方数之和

1、题目描述 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 b2 c 。 示例 1: 输入:c 5 输出:true 解释:1 * 1 2 * 2 5示例 2: 输入:c 3 输出:f…

账号存活率骤降19%?2025跨境账号安全白皮书预警

账号安全危机来袭,跨境电商如何应对挑战? 在全球电商产业快速扩张的今天,账号安全问题日益严峻,尤其是在跨境电商领域。根据2025年《跨境账号安全白皮书》的报告,跨境电商平台账号存活率骤降19%,这一令人震…

第435场周赛:奇偶频次间的最大差值 Ⅰ、K 次修改后的最大曼哈顿距离、使数组包含目标值倍数的最少增量、奇偶频次间的最大差值 Ⅱ

Q1、奇偶频次间的最大差值 Ⅰ 1、题目描述 给你一个由小写英文字母组成的字符串 s 。请你找出字符串中两个字符的出现频次之间的 最大 差值,这两个字符需要满足: 一个字符在字符串中出现 偶数次 。另一个字符在字符串中出现 奇数次 。 返回 最大 差值…

AI前端开发技能提升与ScriptEcho:拥抱智能时代的新机遇

在AI技术飞速发展的今天,AI写代码工具不再是科幻电影里的场景,而是已经融入到我们的日常开发工作中。AI前端开发作为一门新兴的技术,正快速改变着我们的工作方式。然而,想要在这个领域立足并脱颖而出,就必须不断提升自…

提升顾客转化率:融合2+1链动模式AI智能名片与S2B2C商城小程序的创新策略

摘要:在数字化转型的背景下,零售商面临着提升顾客转化率的巨大挑战。本文旨在探讨如何通过整合顾客行为数据、21链动模式、AI智能名片及S2B2C商城小程序等新兴技术与商业模式,来精准定位顾客需求,优化营销策略,从而提高…

前端自动化部署的极简方案

写在前面 在现代软件开发中,自动化部署已经成为了一个不可或缺的环节。它可以大幅度提高开发效率,减少人为错误,并且使得整个部署过程更加可靠和可控。对于前端项目来说,自动化部署同样重要。本文将介绍一个极简的前端自动化部署…