引自:
[tcltk]安全的socket傳送示例
作為server端的socket,在讀取client連線時, 可以通過eof和catch 來驗證連線的可靠性。但是傳送的時候,卻很難僅僅依賴自身的資訊來確定連線的狀態,這一點無論在server還是client端都是一樣的。我們可以舉 個例子:
[server_for_test.tcl]
set server [socket -server onconnection 8808]
array set cli_arr {}
proc onconnection
proc log ]}
}after 500
close $server
foreach s [array names cli_arr]
}vwait forever
[client_for_test.tcl]
proc rpc_client
set s [socket $host $port]
fileevent $s w
vwait connected
fileevent $s w {}
if else
}proc rpc_cli_send
flush $sock
fileevent $sock readable [list checkserverandsend $sock $msg]
}proc readresult
proc checkserverandsend
after 5000
fileevent $s readable
vwait timeout
if )} else
close $s
set ::forever 1}}
proc readresultandfilter
default
close $s
set ::forever 1}}
}proc log
set test 1
if $test ]
hello
}vwait forever}}
首先是乙個安全的鏈結建立函式rpc_client,其中有乙個timeout的變數,我們將vwait在它上面,一旦超時則鏈結建立失敗,這基本上就是 抄《practical programming tcl ... 》裡的例子,要說一下的是socket一旦被建立,它就處於可寫狀態,我們就是通過這個狀態來確定建立的成功與否。接下來的乙個傳送函式則是實現安全傳送 的關鍵所在了,傳送乙個的命令之後,socket的可讀狀態被繫結到了乙個叫做checkserverandsend的函式上,由它來確定伺服器端的可用狀態。一旦確 定資訊是可以到達server的,這個時候在真正傳送資訊過去,並將socket的可讀狀態繫結到readresultandfilter上,由它來處理 返回的結果。
最後給出伺服器端的指令碼,這是乙個通用的遠端tcl**執行器,可執行傳輸過來的任何合法tcl指令並將結果返回給客戶端,我覺得它很有意思,可以幹一些不可告人的事情。
[rpc.tcl]
Socket通訊協議與socket安全
作者為 qq 37551067 在socket強聯網中,我們可以通過定義一些對資料封裝的規則來進行資料的傳輸,讓資料可以在伺服器和客戶端進行 相互傳輸 每條資料都有乙個協議編號,在資料傳輸的時候也一併傳輸過去,讓接受方可以知道傳輸的是哪個協議,可以使用對應 一就是json不支援float型別的數據,...
Socket安全策略問題的解決
flash player安全策略問題和埠問題對於socket xmlsocket 的web開發一直都是很頭痛的問題,經過昨天一天的研究,終於找到了解決方案了,我把解決方法在這裡作一下簡述!其實flash幫助檔案也做了說明 就在呼叫socket.connect方式之間先進行 security.load...
TCL TK 與 C 程式的整合
tcl tk 與 c 程式的整合 一 簡介 比較tcl tk 提供的快速而又容易的開發圖形擁護介面,x 程式顯得很煩瑣。tcl tk 是一種指令碼語言,就象其它的一些指令碼語言一樣,也有很多事情不能夠做或很難做。解決途徑是聯合 c 與 tcl tk 一起來開發.tcl tk 系統提供c 程式呼叫tc...