‘壹’ 怎么用python登录windows系统
# -*- coding:utf-8 -*-
#! python2
import wmi
def sys_version(ipaddress, user, password):
conn = wmi.WMI(computer=ipaddress, user=user, password=password)
for sys in conn.Win32_OperatingSystem():
print "Version:%s" % sys.Caption.encode("UTF8"),"Vernum:%s" % sys.BuildNumber #系统信息
print sys.OSArchitecture.encode("UTF8") # 系统的位数
print sys.NumberOfProcesses # 系统的进程数
if __name__ == '__main__':
sys_version(ipaddress="ip", user="用户名", password="密码")
‘贰’ Python中用socket编写服务器和客户端。。。
服务器端代码
while 1:
buf = s.recv(1024)
改成
while 1:
buf = conn.recv(1024)
看看能不能接收到信息
--------------
貌似你的服务端代码 俩个while 1 有点问题
‘叁’ 有关python聊天程序
代码简单,直接看代码吧:
复制代码代码如下:
import socket
import threading
import re
#import Tkinter
def ser():
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('',33333))
s.listen(1)
conn,addr=s.accept()
while True:
print '[%s:%d] send a message to me: %s'%(addr[0],addr[1],conn.recv(1024))
s.close()
def clt():
c=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip_pattern=re.compile(r'^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$')
while True:
ip=raw_input('Input the Server\'s IPv4 address:')
ip_match=ip_pattern.match(ip)
if ip_match:
break
c.connect((ip,33333))
while True:
sms=raw_input('Input the message you want to send:')
c.sendall(sms)
c.close()
if __name__=="__main__":
ser=threading.Thread(target=ser)
clt=threading.Thread(target=clt)
ser.start()
clt.start()
ser.join()
clt.join()
‘肆’ python网络编程
那个,conn.recv返回的是接收到的数据,不是数据长度!
file_size = str(conn.recv(1024))这句完全没有意义
data = conn.recv(1024))
file_size = len(data)
这样才是获取数据长度,不过你的逻辑还是有问题,你第一次接收的数据给扔了。。。
‘伍’ 如何利用Python标准库编程
第一步、根据自己的业务需求声明一个继承自Python标准库的模块
# 接收流量类,继承自asyncore.dispatcher,class Receiver(asyncore.dispatcher):
def __init__(self,conn):
asyncore.dispatcher.__init__(self,conn)
self.from_remote_buffer='' # 接收数据的缓冲区
self.to_remote_buffer='' # 发送数据的缓存区
self.sender=None1234567
第二步、根据文档,重写模块中的方法,这些方法有些像生命周期中的事件,你可以通过在这些事件中自定义代码,使得在特定时间点执行特定的代码。
# 接收流量类,继承自asyncore.dispatcher,class Receiver(asyncore.dispatcher):
def __init__(self,conn):
asyncore.dispatcher.__init__(self,conn)
self.from_remote_buffer='' # 接收数据的缓冲区
self.to_remote_buffer='' # 发送数据的缓存区
self.sender=None
# 当活动opener的套接字真正创建连接时被调用。也许发送一个“欢迎”字符串数据,或者比如,初始化一个远程端点的协商协议。
def handle_connect(self):
pass
# 当异步循环检测到一个在信道套接字上的read()调用时会成功被调用。
def handle_read(self):
read = self.recv(BUFSIZE)
self.from_remote_buffer += read # 每次在异步循环中被调用来决定是否一个信道的套接字应该被加到写事件可以发生的列表中。 默认方法简单地返回 True,显然,所有的信道会关注于写事件。
def writable(self):
return (len(self.to_remote_buffer) > 0) # 当异步循环检测到一个可写入的的套接字可以被写入时被调用。常用这个方法为了性能优化实现必要的缓存。
def handle_write(self):
sent = self.send(self.to_remote_buffer)
self.to_remote_buffer = self.to_remote_buffer[sent:] # 当套接字被关闭的时候调用
def handle_close(self):
self.close() if self.sender:
self.sender.close()