㈠ 請問各位大大,python如何編寫websocket的服務端和客戶端,wss的那種
自己開發websocket的服務端和客戶端不是不可以,就是短時間內難以做出來穩定性高的服務。
如果真要自己開發也不是不行,python下可以用的websocket或者channels來開發websocket,具體如何實現你網路一下就有很多教程了。
不過如果是在商業項目中運用的話,穩定性、高並發性是需要著重考慮的,可以嘗試下第三方的websocket推送服務的。
我們項目現在集成的是【GoEasy】websocket推送,目前使用良好,穩定性這些都不錯。
㈡ Python中用socket編寫伺服器和客戶端。。。
伺服器端代碼
while 1:
buf = s.recv(1024)
改成
while 1:
buf = conn.recv(1024)
看看能不能接收到信息
--------------
貌似你的服務端代碼 倆個while 1 有點問題
㈢ 如何用python開發一個ssh客戶端工具
1)通過paramiko的ssh模塊連接指定主機;
2)通過SSHClient.exec_command在遠程主機上執行命令;
3)通過exec_command返回的stdout,stdin,stderr進行交互;
4)保存成功連接的主機信息(session),可以通過ls命令查看,sessionid命令,直接啟動新連接;
5)可在windows和linux下運行,寫程序時需要注意他們的差別。
代碼ssh.py
#!/usr/bin/python
#-*-coding:utf-8-*-
importos,sys
importparamiko
importthreading
importplatform
curr_ssh=None
curr_prompt=">>"
#使用說明
defprintUsage():
print"!ls:listsessions."
print"!sessionid:connectsession."
print"!connhostuserpassword:connecthostwithuser."
print"!exit:exit."
#連接
defconn(ip,username,passwd):
try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
print"Connectto",ip,"with",username
globalcurr_prompt
curr_prompt=username+"@"+ip+">>"
returnssh
except:
returnNone
#載入以前的連接信息
sessions=[]
defloadSessions():
globalsessions
try:
f=open("sessions")
sessions=f.readlines()
f.close()
except:
pass
#執行本地命令,ssh.py的命令
defexe_cmd_local(cmd):
if(cmd=="!ls"):
loadSessions()
globalsessions
i=0
print"Sessions:"
forsinsessions:
print"[%d]%s"%(i,s)
i+=1
else:
vals=cmd.split('')
if(vals[0]=="!session"):
id=(int)(vals[1])
if(id<len(sessions)):os_name="platform.system()"new_console_cmd=""if(os_name="=""linux"):="".=""ssh.py="""=""+=""sessions[id]+"""=""elif(os_name="=""windows"):=""sessions[id]=""os.system(new_console_cmd)=""else:=""print="""didn't=""hava=""sessoin=""",vals[1]=""elif(vals[0]="="!conn"):"global=""curr_ssh=""f="open("sessions","a")"line="vals[1]+"""+vals[2]+"="""+vals[3]+" "=""f.write(line)=""f.close()=""#在ssh連接的主機上執行命令=""def=""exe_cmd_ssh(ssh,cmd):=""if(ssh="="none):=""connect=""to=""a=""server.=""use=""'!conn'=""please."=""return=""stdin,=""stdout,=""stderr="ssh.exec_command(cmd)"#stdin.write("y")=""#簡單交互,輸入=""『y』=""#屏幕輸出=""stdout.read()=""stderr.read()=""#入口函數=""if=""__name__="='__main__':"loadsessions()=""if(len(sys.argv)="=4):"printusage()=""while=""true:=""cmd="raw_input(curr_prompt)"if(len(cmd)="=0):"continue=""if(cmd="=""!exit"):=""if(curr_ssh=""!="None):"curr_ssh.close();=""break=""if(cmd[0]="="'!'):=""exe_cmd_local(cmd)=""exe_cmd_ssh(curr_ssh,cmd)<=""pre="">