Python实现socket简单一对一聊天

本文介绍了使用Python实现TCP协议的一对一socket聊天程序。详细阐述了socket的创建、连接、数据传输及关闭流程,并提供了服务端和客户端的Python代码示例。重点提到了accept()和recv()的阻塞特性,以及数据传输中字符串与字节的转换需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.socket流程介绍

这里主要介绍以TCP为主的socket,即基于连接的会话,流程如图,解释如下:

  • step1 服务端需要创建一个socket对象;用bind()函数绑定一对用于连接的IP地址和端口号port;然后用listen()函数侦听打开的端口;用accept()函数接收来自客服端的请求,此时返回两个参数,一个是客户端的ip/port, 一个是客户端与服务端之间建立的连接,后续的通信都是这个连接进行的。接下来客户端就可以向服务器发起请求了。
  • step2 客户端同样需要创建一个socket对象,并用connet()方法连接服务器,传入服务器的ip/port。
  • step3 接下来客户端服务端之间就可以通过各自的socket对象,用recv()和sendall()函数发送数据了。
  • step4 通信结束以后,客户端与服务端的socket都需要进行close()操作,以关闭连接。

2.Python代码实现

服务端

关于如何查看本地IP地址:windows: 命令行用ipconfig命令, 即可查看

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
服务端
localhost:服务端的IP地址,str型
port: 服务端开放的端口号,int型
"""

import socket

# 创建服务端socket对象
server_sk = socket.socket()

# bind()/listen()/sccept()
server_sk.bind((localhost, port))
server_sk.listen()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值