tcltk 安全的socket傳送示例

2021-09-30 07:34:34 字數 1595 閱讀 5801

引自:

[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...