用python实现局域网内对话(python实例二十四)

目录

1.认识Python

2.环境与工具

2.1 python环境

 2.2 Visual Studio Code编译

 3.对话系统

3.1 代码构思

3.2服务端

3.3客户端

3.4运行结果

4.总结


1.认识Python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象脚本语言

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。

2.环境与工具

2.1 python环境

在Windows上使用命令行窗口查看所安装的python版本

python --version

 2.2 Visual Studio Code编译

Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。

 

 3.对话系统

3.1 代码构思

代码分为两块,一块是服务端,一块是客户端,使用socket模块实现。

3.2服务端

服务端:创建套接字对象——将套接字对象与服务器的IP和端口绑定——-启动监听——接收信息——循环——传输完成,关闭套接字

import socket
#建立socket套接字对象
sk=socket.socket()
#绑定IP地址和端口号
sk.bind(('127.0.0.1',8888))
sk.listen()
flag=0
while True:
    print('接收准备')
    conn,addr=sk.accept()
    while True:
        rec_msg=conn.recv(1024).decode('utf-8')
        if rec_msg=='q':
            print('对方连接断开。')
            flag=1
            break
        if rec_msg:
            print('对方说:',rec_msg)
        sed_msg=input('请输入回复:')
        conn.send(sed_msg.encode('utf-8'))
        if sed_msg=='q':
            flag=2
            break
    #退出循环,关闭连接
    conn.close()
    if flag==1:
        continue
    elif flag==2:
        break
sk.close()

3.3客户端

客户端:创建套接字对象——向服务器地址和端口发送请求——寄哪里循环——传输完成,关闭套接字

import socket
sk=socket.socket()
#连接服务端
sk.connect(('127.0.0.1',8888))
while True:
    #发送消息
    send_msg=input('请输入消息:')
    sk.send(send_msg.encode('utf-8'))
    if send_msg=='q':
        break
    rec_msg=sk.recv(1024).decode('utf-8')
    if rec_msg=='q':
        print('服务器关闭')
        break
    if rec_msg:
        print('对方消息:',rec_msg)
sk.close()

3.4运行结果

4.总结

可以在单台设备上打开两个窗口分别运行客户端和服务端,也可以在一台设备上打开服务端后,在另一台设备上运行客户端程序,进而实现一个局域网内的聊天程序。

注意ip地址和端口号要设置好。

你也运行试试吧!

相关推荐

  1. Python置函数,及实例演示

    2024-07-15 16:24:01       37 阅读
  2. Python3 第三五课 -- 实例

    2024-07-15 16:24:01       22 阅读
  3. python实践笔记(): 类和对象

    2024-07-15 16:24:01       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 16:24:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 16:24:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 16:24:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 16:24:01       69 阅读

热门阅读

  1. solidity实战练习2--ERC20实现

    2024-07-15 16:24:01       24 阅读
  2. 平衡之术:Kylin攻克数据倾斜的秘诀

    2024-07-15 16:24:01       20 阅读
  3. 常用网站、工具的链接总结(自用且持续补充)

    2024-07-15 16:24:01       19 阅读
  4. Postman 接口测试工具详解

    2024-07-15 16:24:01       19 阅读
  5. Qt qml详细介绍

    2024-07-15 16:24:01       19 阅读
  6. linux:wget在后台下载

    2024-07-15 16:24:01       19 阅读
  7. 2.6 计算机语言

    2024-07-15 16:24:01       22 阅读
  8. 深度学习之轻量化神经网络 EfficientNet

    2024-07-15 16:24:01       19 阅读
  9. Vue3+Element Plus 使用sortablejs对el-table表格进行拖拽

    2024-07-15 16:24:01       19 阅读
  10. 网络建设与运维python脚本应用

    2024-07-15 16:24:01       18 阅读