百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python中实现Socket通讯(附详细代码)

off999 2024-11-14 17:01 27 浏览 0 评论

套接字(socket)是一种在计算机网络中进行进程间通信的方法,它允许不同主机上的程序通过网络相互通信。套接字是网络编程的基础,几乎所有的网络应用程序都使用某种形式的套接字来实现网络功能。套接字可以用于各种类型的网络协议,如TCP、UDP等。


在 Python 中使用套接字(socket)进行网络通讯是一种常见的做法。接下来我给大家提供一个简单的 TCP 服务器和客户端的例子,它们可以互相发送和接收消息。

服务器端 (Server)

  1. 导入 socket 库。
  2. 创建一个 socket 对象。
  3. 绑定 IP 地址和端口号到这个 socket。
  4. 监听连接请求。
  5. 接受客户端的连接。
  6. 与客户端通信:发送/接收数据。
  7. 关闭连接。
import socket

def start_server(host='127.0.0.1', port=65432):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        # 绑定地址
        s.bind((host, port))
        # 开始监听
        s.listen()
        print(f"Server listening on {host}:{port}")
        
        while True:
            # 等待客户端连接
            conn, addr = s.accept()
            with conn:
                print('Connected by', addr)
                while True:
                    data = conn.recv(1024)
                    if not data:
                        break
                    print(f"Received: {data.decode()}")
                    # 发送回客户端
                    conn.sendall(data)

if __name__ == '__main__':
    start_server()

客户端 (Client)

  1. 导入 socket 库。
  2. 创建一个 socket 对象。
  3. 连接到服务器。
  4. 发送/接收数据。
  5. 关闭连接。
import socket

def start_client(host='127.0.0.1', port=65432):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        # 连接到服务器
        s.connect((host, port))
        message = "Hello, Server!"
        # 发送数据
        s.sendall(message.encode())
        # 接收响应
        data = s.recv(1024)
    
    print(f"Received from server: {data.decode()}")

if __name__ == '__main__':
    start_client()

使用说明

  • 确保先运行服务器脚本,然后运行客户端脚本。
  • 默认情况下,这里的例子使用本地回环地址 127.0.0.1 和端口 65432。你可以根据需要更改这些值。
  • 服务器会持续运行并等待新的连接,直到手动停止。
  • 每次客户端发送消息给服务器后,服务器会把相同的消息返回给客户端。

上面的代码展示了如何使用 Python 的标准库来实现基本的 TCP 客户端-服务器模型。对于更复杂的应用场景,可能还需要考虑错误处理、多线程或异步 I/O 等高级功能。

欢迎点赞?关注!

相关推荐

免费伴奏网(免费伴奏网址大全)

推荐下列5个伴奏网:99伴奏网这个网站提供有很多免费伴奏下载,包括男歌手伴奏,女歌手伴奏,组合伴奏,合唱伴奏,民歌伴奏,儿歌伴奏,改版伴奏,戏曲伴奏,婚礼伴奏等。免费伴奏–乱推网一个伴奏搜索下载网站,...

强力安卓恢复精灵(强力安卓恢复精灵是不是免费的)

您好,强力安卓恢复精灵是不可以恢复微信好友的。删除的好友不能像QQ好友有恢复找回功能,只有另外搜索添加。强力安卓恢复精灵挺好用的,在手机数据删除的时候还可以恢复,特别是将本人删除的微信聊天记录也恢复了...

电脑安装ktv点歌系统(怎么在电脑上安装ktv点歌)

在你的电脑上增加硬盘容量,用来装基本的歌曲库再在电脑上增加一个音视频输出设备,安装一套点歌系统就可以了。(1)硬盘容量大小根据您所需要歌曲的格式及数量来决定。以4分钟的MTV为例,一首DVD歌曲占用...

45到65岁大龄工招工(45到65岁大龄工招工女)

应该有。一般是服务行业,手工业。现在服务行业招不到年轻人,只有年纪大点的才肯应聘。家政公司招人一般会需要,养老机构也需要照顾老年人的人。传统手工业,只有年纪大的人会,必须招人,65岁也可以,特别是旅游...

qq牧场手机版官方下载(qq牧场手机版官方正版下载)

建议进行以下操作:1.检查手机网络连接是否稳定,建议更换无线网络尝试。2.更新软件版本尝试。3.点击手机应用程序-设定-应用程序管理器-已下载-选择出现问题的应用-清除数据4.将数据备份(联系人,短信...

取名软件免费版(取名软件免费版有哪些)

没啥好的软件的,去年年底我家娃起名字的时候,我们也下载了一堆软件,都没啥实用的;要么你付费去让人家起名,要么就用免费的试用一下,多找几个试用,然后把名字汇总起来,再找找合适的!这个肯定是有的,但是亲建...

手机北斗导航下载(手机北斗导航下载哪个软件)

北斗导航没有具体的APP,不能直接使用,但是现在国内的流行导航APP都是使用的北斗导航的地图,所以我们只需要在手机应用商城下载现下的导航APP如高德地图、地图等,就可以在这些软件中使用到北斗导航系统。...

会员管理软件(美发店会员管理软件)

洗车店会员卡管理软件,用电子会员版的好些,客户只需要带上手机,关注微信公众号,登记手机号,就可以查询到会员充值信息、消费信息、卡内余额或项目等信息。还可以发送消费短信,告知客户余额或剩余套餐卡项目,会...

世界杯2025赛程表(u23世界杯2025赛程表)

2022年卡塔尔世界杯(英语:TheFIFAWorldCup-Qatar2022)是第二十二届世界杯足球赛,是历史上首次在卡塔尔和中东国家境内举行、也是继2002年韩日世界杯之后时隔二十年...

player安卓版下载(finalswfplayer安卓版下载)

使用手机直接下载,那就是在手机iTunes里面搜索下载歌曲,然后就会自动添加到音乐软件程序里面去。使用电脑同步,就是在电脑上面下载安装iTunes,然后把歌曲加载到电脑版iTunes音乐资料库里面,然...

360浏览器官方网站(360浏览器-影视新闻资讯小说浏览)
360浏览器官方网站(360浏览器-影视新闻资讯小说浏览)

360极速浏览器的入口是http://chrome.360.cn/360极速浏览器(360chrome)无缝融合双核引擎,采用了最快速的Chromium内核及兼容性最好的IE内核,360极速浏览器简洁人性化的设计,更好用,360极速浏览器囊...

2026-01-16 18:15 off999

酷狗音乐官网首页(酷狗音乐旗下最新最全的在线正版音乐网站)
  • 酷狗音乐官网首页(酷狗音乐旗下最新最全的在线正版音乐网站)
  • 酷狗音乐官网首页(酷狗音乐旗下最新最全的在线正版音乐网站)
  • 酷狗音乐官网首页(酷狗音乐旗下最新最全的在线正版音乐网站)
  • 酷狗音乐官网首页(酷狗音乐旗下最新最全的在线正版音乐网站)
不受限制的万能浏览器手机版

在万能浏览器里面,UC浏览器是最好用的。UC浏览器是阿里巴巴旗下的一个浏览器,它整体上给人的感觉是非常友好而且非常流畅,关键的是它很少有广告,同时呢也不会劫持别人的这个浏览器,而且他这个视频看起来非...

下载安装qq浏览器(下载安装QQ浏览器)
下载安装qq浏览器(下载安装QQ浏览器)

若手机不能下载软件,建议您:1.查看软件下载说明,是否对软件安装平台、手机系统版本等有要求。2.检查下载的软件格式是否正确:安卓系统手机支持的软件格式为.APK。3.检查手机内存是否已满,打开手机设定-存储-可用空间。4.查看下载的...

2026-01-16 17:43 off999

目前最好用的网络电话(哪款网络电话好用)

好用的网络电话软件有爱科手机网络电话软件、阿里通网络电话、skype网络电话、有信、爱聊。1、爱科手机网络电话软件:爱科可以在手机上打网络电话。是一款开放式网络通信软件,融合免费网络电话、免费短信、网...

取消回复欢迎 发表评论: