利用Python语言,设计一个网络聊天程序,实现网络通信或者文件传输

Python014

利用Python语言,设计一个网络聊天程序,实现网络通信或者文件传输,第1张

这个是很有意思,也简单的话题 。你可以使用twisted, 或者是socket, 实现。 如果想优美些可以用stackless,也可以用greenlet。

最简单的办法是使用内置的httpserver,通过多线程socketserver,和simplehttpserver实现简单的交互。

1、进入mysql,创建一个新用户test:

格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"

grant all privileges on *.* to [email protected] identified by "123456"

或者

grant select,update,insert,delete on *.* to [email protected] identified by "123456"

2、 ./mysqladmin -uroot -ppwd reload

记住:对授权表的任何修改都需要重新reload

这时我们应该可以从192.168.0.2来远程管理192.168.0.1的数据库了

下面就是该脚本radius.py,其中出现三个日期:10天以后的日期future、今天的日期now、用户到期时间userdate,如果userdate <= future 并且 userdate >= now,那么向radreply表中插入一行,向用户提示到期时间,及时缴费;如果userdate <now,那么将该用户的状态设为停机,不允许其再登陆。

#! /usr/local/python/bin/python

# -*- coding: UTF-8 -*-

#引入模块

import MySQLdb

import datetime

#格式化日期,只有相同格式的日期才能进行比较

future = (datetime.date.today() + datetime.timedelta(10)).strftime("%Y-%m-%d")

now = (datetime.date.today()).strftime("%Y-%m-%d")

#这里就是连接远端数据库了

conn = MySQLdb.connect (host = "192.168.0.1",

user = "test",

passwd = "123456",

db = "radius")

cursor = conn.cursor ()

cursor.execute ("SELECT login_name,id,last_date FROM customer where last_date!='' and type='包月' and status='开通'")

开发环境:

1、操作系统: Windows 10 X64

2、Pycharm 2020.2.1

新建项目后,创建两个包 ftp_client与ftp_server,分别代表客户端与服务端。

该项目的完成主要借助了python提供的socketserver库来进行连接。

本项目实现了客户端对于服务端D://文件夹的增加文件,删除文件,修改文件功能。分别以put,delete,modify表示。

对于client,实现了最基础的交互功能,用户可以用如put test.txt等命令来实现功能。修改文件,用户首先输入modify z.txt 命令,z.txt是D://文件夹中已经存在的文件,再根据提示,输入想修改的内容即可修改成功。

在这一模块中,将重点介绍我在实现项目的过程中遇到的问题。

1、bytes与str的转换,传输以字节流进行,但是输出部分内容要以str形式,注意转换

2、熟悉python的语法

3、熟悉文件相关操作

4、考虑传输文件过大的情况

该问题不影响项目的正常使用,但未找到较好的解决办法