python学习--服务期间通讯和mysql数据库操作
import socket
import json
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)
host=''
port=1234
s.bind((host,port))
s.listen(3)
while True:client,ipaddr=s.accept()print "Got a connect from %s" %str(ipaddr)data=client.recv(1024)metadata=json.loads(data)print "receive data:%s" %metadata[1]['name']client.send("echo:"+data)client.close()
客户端:#! /usr/bin/env python
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)
host='localhost'
port=1234
s.connect((host,port))
#fileHandle = open('/root/test')
s.send('fileHandle')
data=s.recv(1024)
print "Reply from server----%s" %data
只要把客户端对应读取的文件 用json可是存数据 服务器端收到客户端发过来的数据Python通过MySQL-Python把数据写进MySQL数据库
下载和安装
wget http://jaist.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz tar fvxz MySQL-python-1.2.3.tar.gz -C /usr/src/MySQL-python-1.2.3/ python setup.py build python setup.py install
连接数据的代码:
,%s,%s,%s,%s¥
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="123456",db="python",unix_socket="/tmp/mysql.sock")
cursor=conn.cursor()
sql = "insert into python values(%s,%s)"
param = (ip,status)
cursor.execute(sql,param)
conn.commit()
cursor.close()
conn.close()
把链接数据库的代码整合进服务器端的代码:
和服务器端写到一起
#!/usr/bin/env python
import socket
import json
import MySQLdb
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)
host=''
port=1234
s.bind((host,port))
s.listen(3)
while True:client,ipaddr=s.accept()print "Got a connect from %s" %str(ipaddr)data=client.recv(1024)metadata=json.loads(data)ip = metadata[0]['ip']status = metadata[1]['status']conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="python",unix_socket="/tmp/mysql.sock")cursor=conn.cursor()sql = "insert into python values(%s,%s)"param = (ip,status)cursor.execute(sql,param)conn.commit()cursor.close()conn.close()#print "receive data:%s" %metadataclient.send("echo:"+data)client.close()
再添加一个故障处理,来处理从客户端接受的json格式数据key不符的问题,添加完的代码如下:
#!/usr/bin/env python
import socket
import json
import MySQLdb
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)
host = ''
port = 1234
s.bind((host,port))
s.listen(3)
while True:client,ipaddr = s.accept()print "Got a connect from %s" %str(ipaddr)data=client.recv(1024)metadata=json.loads(data)try:ip = metadata[0]['ip']status = metadata[1]['status']conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="python",unix_socket="/tmp/mysql.sock")cursor=conn.cursor()sql = "insert into python values(%s,%s)"param = (ip,status)cursor.execute(sql,param)conn.commit()cursor.close()conn.close()client.send("echo:"+data)client.close()except:client.send("Data ERROR")client.close()
转载于:https://blog.51cto.com/songknight/1411105
相关文章:

[Angular JS教程] HeroService: getHeroes failed: undefined 问题解决方法
最近在学习入门Angular JS,学习资源是https://angular.cn/tutorial, 在学习到 “https://angular.cn/tutorial/toh-pt6模拟数据服务器” 阶段时,客户端访问http://localhost:4200/无法get到英雄列表,Message系统记录日志如下&…

BZOJ 4059: [Cerc2012]Non-boring sequences ( )
要快速在一段子序列中判断一个元素是否只出现一次 , 我们可以预处理出每个元素左边和右边最近的相同元素的位置 , 这样就可以 O( 1 ) 判断.考虑一段序列 [ l , r ] , 假如我们找到了序列中唯一元素的位置 p , 那我们只需检查 [ l , p - 1 ] & [ p 1 , r ] 是否 non-boring…

Java项目:小蜜蜂扩音器网上商城系统(java+JSP+Servlet+JDBC+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 用户功能模块: 用户注册: 用户登录:商品模块:订单模块;后台管理系统功能:管理员模块: 商品模块:…

WebBrowserProgramming - Python Wiki
WebBrowserProgramming - Python WikiWeb Browser Programming in Python

C++ transform for_each
#include<iostream>#include<vector>#include <list>#include <algorithm>#include <functional> using namespace std; //不需拷贝,速度快void square(int &elementParam){ elementParam elementParam*elementParam;} //速度…

When should static_cast, dynamic_cast and reinterpret_cast be used?
这是我偶然在 http://stackoverflow.com/questions/ 网页上发现的一个问题(类似博客园的博问),问题主要是关于询问应该怎样使用,以及何时使用C里面的这几种类型转换操作符:static_case, dynamic_cast,以及 …

Java项目:养老院管理系统(java+SSM+JSP+Easyui+maven+mysql)
源码获取:博客首页 "资源" 里下载! 运行环境: JDK1.8、tomcat8、eclipse、mysql5.6、Navicat 功能实现: 用户: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭地址,注册时间 老人: 老人编号,姓名,…

Linux访问Windows磁盘实现共享
业务需求说明:公司在部署hadoop集群和DB server与SAN存储,公司的想法是前端通过DB Server能够将非结构化的数据能放进SAN存储当中,而hadoop集群也能够访问这个SAN存储。因此需要在SAN磁盘阵列中开辟一个共享区域,这个区域技能让DB…

ubuntu环境ceph配置入门(一)
为什么80%的码农都做不了架构师?>>> 环境:ubuntu server 14.04 64bit,安装ceph版本0.79 正常情况下应有多个主机,这里为了快速入门以一台主机为例,多台主机配置方式类似。 1. 配置静态IP及主机名 静态IP配…

mysql查看当前实时连接数
静态查看: SHOW PROCESSLIST; SHOW FULL PROCESSLIST; SHOW VARIABLES LIKE %max_connections%; SHOW STATUS LIKE %Connection%; 实时查看: mysql> show status like Threads%; -------------------------- | Variable_name | Value | ------------…

lsof 简介
lsof简介 lsof(listopen files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协…

Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

Xcode中如何解决无法使用svn命令行的问题
今天在自己机器上安装了xp虚拟机,然后在xp虚拟机上安装了svn的服务器.发现原本Xcode5以后就自带的svn竟然在终端无法使用命令行,出现了以下的错误: xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use xcode…

查看和设置MySQL数据库字符集(转)
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -iname *.cnf -print /usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/sha…

数据库管理工具dbeaver
https://dbeaver.io/ 转载于:https://www.cnblogs.com/mingzhang/p/11016229.html

linux文件权限详解
linux文件权限详解 一、文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户…

linux定时器(crontab)实例
linux实验示例----实现每2分钟将“/etc”下面的文件打包存储到“/usr/lobal”目录下 Step1:编辑当前用户的crontab并保存终端输入:>crontab -u root -l #查看root用户设置的定时器>crontab -u root -e #进入vi编译模式 00-59/2 * * * * /bin/bash …

Java项目:晚会抽奖系统(java+Jdbc+Servlet+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

hdu 4587 2013南京邀请赛B题/ / 求割点后连通分量数变形。
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。 思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节: 1&…

javascript中 (function(){})();如何理解?
javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。 (function(){})是一个标准的函数定义,但是…
通过IP地址和子网掩码与运算计算相关地址
知道ip地址和子网掩码后可以算出: 1、网络地址 2、广播地址 3、地址范围 4、本网有几台主机 例1:下面例子IP地址为1921681005子网掩码是2552552550。算出网络地址、广播地址、地址范围、主机数。 一)分步骤计算 1) 将IP地址和子网掩码换算为二进制…

Java项目:兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: HTML Springboot SpringMVC MyBatis…

java实现时间的比较
时间大小的比较以及把String类型的时间转换为Date类是时间在开发中是非常常见的,下面的主要是一个工具方法 public class Test {public static void main(String[] args) {// TODO Auto-generated method stubString sTime "2015-07-13";String fTime &…

在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene
一、项目前提步骤1>、创建键空间CREATE KEYSPACE mykeyspaceWITH REPLICATION { class : SimpleStrategy, replication_factor : 1 };2>、创建表和关系数据库一样,开发前需要先建表,再操纵CREATE TABLE tweet (id uuid PRIMARY KEY,nickName text…

JAVA 多线程实现包子铺(买包子,吃包子)
1 package baozi;2 3 /*4 生产者(包子铺)类:是一个 线程类,继承Thread5 设置线程任务(run):生产包子6 对包子 进行判断7 true:有包子8 包子铺调用wait方法进…

字符串面试题(一)字符串逆序
字符串逆序可以说是最经常考的题目。这是一道入门级的题目,相信80%的程序员经历过这道题。给定一个字符串s,将s中的字符顺序颠倒过来,比如s"abcd",逆序后变成s"dcba"。 普通逆序 基本上没有这么考的…

Java项目:在线淘房系统(租房、购房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)
源码获取:博客首页 "资源" 里下载! 该系统有三个角色,分别是:普通用户、房屋中介、管理员。普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介等等。房屋中介的功能:发布房屋信息…

Be a person
做人不能太实诚 尤其是干我们这行的 多久时间能做完 你自己心里要有个估算 然后把时间再往后延 别他妈给自己找罪受 转载于:https://www.cnblogs.com/wskgjmhh/p/4644840.html

Solr配置文件分析与验证
前面一篇开始学习solr的时候,做了个入门的示例http://6738767.blog.51cto.com/6728767/1401865。虽然可以检索出内容,但总和想象的结果有差异——比如,检索“天龙”两个字,按常规理解,就应该只出来《天龙八部》才对&am…

oracle启用归档日志
一、开启归档 1、查看归档信息 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 244 Current log sequence …