導航:首頁 > 網路連接 > 網路連接狀態方法python

網路連接狀態方法python

發布時間:2022-09-14 06:35:00

㈠ python 怎麼去連接寬頻撥號

思路:python通過os模塊去下發cmd命令,cmd是有現成命令Rasdial來完成撥號

如何使用python設置無線網路連接共享屬性

這里必須要手動去設置,用的就是cmd,widows自帶的命令開wifi。

㈢ 如何用Python實現實時的網路連接檢測

如果你用的socket包里的那些阻塞介面,當然寫個線程循環監測時間也沒啥,只不過記得在循環內加上個sleep,哪怕是1ms甚至1us的sleep都可以避免CPU被消耗干凈。

如果你所說的接收是死循環式里跑socket.recv,它會在recv里阻塞,按你的說法3分鍾一個心跳包,時間檢測就成了3分鍾一次,不太合適。

更好的辦法自然是通過epoll/poll之類的方式或者asyncio/twisted/tornado之類的非同步回調/協程加時間事件甚至是各種GUI框架的事件循環來啟動你的發送和接收。考慮到以後可能有多設備,顯然利用這些成型的玩意更合理。

㈣ python怎麼連接websocket

不知道是不是要server和client。

給一個例子,基於py27的聊天室,有server,同時client是用python模擬的,如果你想用js寫,可以自己寫一個

使用前先:

pip install websocket-client

然後運行server、client就可以了

websocket_server.py(服務端)

#-*-encoding:utf-8-*-

importsys
sys.path.append("..")
fromsocketimport*
importjson,time,threading

reload(sys)
sys.setdefaultencoding("utf8")

config={
'HOST':'127.0.0.1',
'PORT':10010,
'LISTEN_CLIENT':50,
'KEY':'',
'SIZE':2048,
'TIME_OUT':10000,
'HEART_TIME':5,
'MAGIC_STRING':'258EAFA5-E914-47DA-95CA-C5AB0DC85B11',
'HANDSHAKE_STRING':"HTTP/1.1101SwitchingProtocols "
"Upgrade:websocket "
"Connection:Upgrade "
"Sec-WebSocket-Accept:{1} "
"WebSocket-Location:ws://{2}/chat "
"WebSocket-Protocol:chat "
}


classServer():
"""
服務端基類
"""
def__init__(self):
self.sock=socket(AF_INET,SOCK_STREAM)
self.sock.bind((config['HOST'],config['PORT']))#監聽埠
self.sock.listen(config['LISTEN_CLIENT'])#監聽客戶端數量

#所有監聽的客戶端
self.clients={}
self.thrs={}
self.users={}
self.stops=[]
self.onlineusers=[]

#監聽客戶端連接
deflisten_client(self):
while1:
#循環監聽
tcpClientSock,addr=self.sock.accept()
address=addr[0]+':'+str(addr[1])#ip:port
#握手
topInfo=tcpClientSock.recv(1024)
headers={}
ifnottopInfo:
self.onlineusers.remove(self.users[address])
tcpClientSock.close()
continue

header,data=topInfo.split(' ',1)

try:
getInfo=header.split(' ')[0].split('')[1].split('/')[1:]
ifgetInfo[0]=='name':
self.users[address]=str(getInfo[1])
self.onlineusers.append(self.users[address])
else:
self.users[address]=u'匿名用戶'

except:
self.users[address]=u'匿名用戶'

print"thisisself.users[address]:"
printself.users[address]

forlineinheader.split(' ')[1:]:
key,val=line.split(':',1)
headers[key]=val

if'Sec-WebSocket-Key'notinheaders:
self.onlineusers.remove(self.users[address])
tcpClientSock.close()
continue


importhashlib,base64
sec_key=headers['Sec-WebSocket-Key']
res_key=base64.b64encode(hashlib.sha1(sec_key+config['MAGIC_STRING']).digest())
str_handshake=config['HANDSHAKE_STRING'].replace('{1}',res_key).replace('{2}',config['HOST']+':'+str(config['PORT']))

tcpClientSock.send(str_handshake)

#握手成功分配線程進行監聽
print(address+u'進來了')

self.clients[address]=tcpClientSock
self.thrs[address]=threading.Thread(target=self.readMsg,args=[address])
self.thrs[address].start()
time.sleep(0.5)

defreadMsg(self,address):
ifaddressnotinself.clients:
returnFalse
client=self.clients[address]

importselect
time_out=0
while1:
ifaddressinself.stops:
self.close_client(address)
print(address+u'已經離開了系統!')
break

#檢測超時
iftime_out>=config['TIME_OUT']:
self.close_client(address)
break

time_out+=5

infds,outfds,errfds=select.select([client,],[],[],5)
iflen(infds)==0:
continue

time_out=0
try:
info=client.recv(1024)
except:
self.close_client(address)
break

ifnotinfo:
continue

ifinfo=='quit':
self.close_client(address)
break
code_len=ord(info[1])&127
ifcode_len==126:
masks=info[4:8]
data=info[8:]
elifcode_len==127:
masks=info[10:14]
data=info[14:]
else:
masks=info[2:6]
data=info[6:]
i=0
raw_str=""
fordindata:
#print(masks,masks[i%4])
raw_str+=chr(ord(d)^ord(masks[i%4]))
i+=1

print"thisisraw_stryesthisisraw_str"
printrepr(raw_str)

#獲取到輸入的數據向所有的客戶端發送
#開啟線程記錄

ifraw_str:
t1=threading.Thread(target=self.send_data,args=[raw_str,address])
t1.start()

time.sleep(0.5)defonlineuser(self):
fromurllibimportunquote
username=[]
foriinself.onlineusers:
i=unquote(i).encode('utf8')
username.append(str(i))
returnusername


defsend_data(self,data,address):
importstruct
fromurllibimportunquote
try:
username=unquote(self.users[address])
except:
username=u'匿名用戶'

'''封裝數據'''
reply={}
ifdata:
data=data.split("}")[0]+"}"
data=json.loads(data);
'''如果有人加入的話,消息封裝如下:'''
ifdata["type"]=="JOIN":
reply["type"]="JOIN"
reply["data"]=data["username"]
reply["user_from"]=data["username"]
reply["user"]=self.onlineuser()
'''如果有人發消息,判斷是發送給全部還是個人'''

elifdata["type"]=="POST":
reply["type"]="POST"
ifdata["sendto"]=="ALL":
reply["data"]="["+data['username']+"]:"+data["content"]
else:
reply["data"]=u"["+data['username']+"]悄悄對["+data["sendto"]+"]說:"+data["content"]
reply["user_from"]=data["username"]
reply["user"]=self.onlineuser()
reply["sendto"]=data["sendto"]

'''如果是退出的消息,封裝如下'''
elifdata["type"]=="QUIT":
self.close_client(address)
reply["type"]="QUIT"
reply["user_from"]=data["username"]
reply["user"]=self.onlineuser()

reply=json.mps(reply)
else:
returnFalse

token="x81"
length=len(reply)
iflength<126:
token+=struct.pack("B",length)
eliflength<=0xFFFF:
token+=struct.pack("!BH",126,length)
else:
token+=struct.pack("!BQ",127,length)

#struct為Python中處理二進制數的模塊,二進制流為C,或網路流的形式。
alldata='%s%s'%(token,reply)
try:
#判斷消息如果是私聊的,找出sendto和sendfrom進行單發
ifdata["type"]=="POST":
ifdata["sendto"]!="ALL":

forkey,valinself.users.iteritems():
printkey,unquote(val)
val=unquote(val)
ifval==data["sendto"]orval==data["username"]:
printkey
self.clients[key].send(alldata)
else:
forkey,valinself.clients.iteritems():
client=val
try:
client.send(alldata)
except:
self.close_client(key)
else:
forkey,valinself.clients.iteritems():
client=val
try:
client.send(alldata)
except:
self.close_client(key)
except:
pass


defclose_client(self,address):
try:
client=self.clients.pop(address)
self.stops.append(address)
self.onlineusers.remove(self.users[address])
client.close()
delself.users[address]
except:
pass

print(address+u'已經退出')if__name__=='__main__':
s=Server()
s.listen_client()websocket_client.py(客戶端)
#-*-encoding:utf-8-*-

importsys
sys.path.append("..")
fromsocketimport*
importjson,time,threading
fromwebsocketimportcreate_connection
reload(sys)
sys.setdefaultencoding("utf8")

#config={
#'HOST':'127.0.0.1',
#'PORT':10010
#}
#pipinstallwebsocket-client

classClient():
def__init__(self):
#調用create_connection方法,建立一個websocket鏈接
self.ws=create_connection("ws://127.0.0.1:10010/name/johanna")
#建一個線程,監聽伺服器發送給客戶端的數據
self.trecv=threading.Thread(target=self.recv)
self.trecv.start()
#建立鏈接後,給聊天室大家群發一個加入消息
msg={
"type":"JOIN",
"username":"johanna",
"content":"HelloEvery,anewguycomein"
}
msg=json.mps(msg)
self.ws.send(msg)

#發送方法,聊天輸入語句時調用,此處默認為群聊ALL
defsend(self,content):
msg={
"type":"POST",
"username":"johanna",
"sendto":"ALL",
"content":content

}
msg=json.mps(msg)
self.ws.send(msg)

#接收服務端發送給客戶的數據,只要ws處於連接狀態,則一直接收數據
defrecv(self):
try:
whileself.ws.connected:
result=self.ws.recv()
print"receivedmsg:"+str(result)
exceptException,e:
pass


#關閉時,發送QUIT方法,並告訴大家,我要走了
defclose(self):
msg={
"type":"QUIT",
"username":"johanna",
"content":"byebye,everyone"
}
msg=json.mps(msg)
self.ws.send(msg)


if__name__=='__main__':

c=Client()
#當輸入聊天語句非exit時,則持續聊天狀態,如果exit,則關閉鏈接
whileTrue:
content=raw_input("pleaseinput(inputexittoexit):")
ifcontent=="exit":
c.close()
break
else:
c.send(content)
time.sleep(1)

㈤ 如何使用python進行撥號上網及斷開連接

思路:python通過os模塊去下發cmd命令,cmd是有現成命令rasdial來完成撥號

㈥ 如何使用python進行撥號上網及斷開連接

我知道你想干什麼壞事。

1.在路由上設置撥號上網,用python urllib2模塊模擬人為操作登錄路由器撥號的斷開連接。通用性不好。不推薦。

2.用python sendkeys模塊模擬按鍵操作,很容易實現,不夠可靠,不推薦。

3.rasdial.exe是WINDOWS 下的命令行工具,可以斷開和連接網路連接。你用python調這個工具來實現就行。容易實現,推薦。

4.再就是樓上說的win32ras模塊。推薦。

㈦ 如何使用Python連接遠程Windows伺服器

在伺服器的電腦上添加第二塊網卡,用於連接Internet。用域管理員賬戶在遠程訪問伺服器上登錄。為第二塊網卡添加公網IP地址
在遠程訪問伺服器上,從「管理工具」中打開,「伺服器管理器」窗口,選中「角色」,單擊「添加角色」,打開「添加角色向導」窗口。
在彈出來的「開始之前」窗口中點擊「是」按鈕。
單擊「下一步」「進入選擇伺服器角色」」窗口,選擇「網路策略和訪問服務」單擊「下一步」。
在「網路策略和訪問服務」簡介窗口單擊「下一步」,在「選擇角色服務」窗口選擇「路由和遠程訪問服務」。
接下來會顯示安裝進度
等安裝好了以後,點擊關閉就可以了。

㈧ python怎麼用代碼打開網路

摘要 Python打開網頁方法一:

㈨ Python 怎樣判斷本機是否接入網路,有什麼好的辦法沒有

用urllib.urlopen讀取, 然後看下是否有「<title>網路一下」之類的關鍵詞比較靠譜, 比如
In [1]: import urllib

In [2]: is_online = u'<title>網路一下,你就知道' in urllib.urlopen("http://www..com/").read().decode('gbk')

In [3]: print is_online

True

㈩ 求助.Python如何獲取wifi信號,並且自動連接wifi

可以,打開網路和共享中心,選擇管理無線網路,雙擊某一個網路,可以選擇是否自動連接,你可以只把那個想設置的網路選擇自動連接,其餘的都設為手動連接。 還有,可以雙擊無線網路設置,左邊下面有個「更改首選網路的順序」,把你想連的移到最上面...

閱讀全文

與網路連接狀態方法python相關的資料

熱點內容
鄰居網路信號不強 瀏覽:637
華為m6共享網路 瀏覽:251
網路安全的層次 瀏覽:948
產品網路營銷策略 瀏覽:748
本機數據網路不好怎麼辦 瀏覽:211
怎麼讓網路好了 瀏覽:484
神舟電腦網路商城 瀏覽:977
網路電視哪個可以看直播 瀏覽:696
網路信號投訴反饋 瀏覽:756
現代四大網路有哪些 瀏覽:335
英雄殺無線網路連不上 瀏覽:645
26位網路能帶多少個主機 瀏覽:188
榮耀usb共享網路不好用 瀏覽:56
網路版微信怎麼收藏 瀏覽:990
軟體網路載入很慢 瀏覽:714
網路怎麼會異常呢 瀏覽:203
手機認證的網路 瀏覽:735
手機不使用2g網路 瀏覽:312
談談如何規范網路直播 瀏覽:959
最近wifi網路卡怎麼回事 瀏覽:182

友情鏈接