SSL Tunnel implementation on Java(2)

Sunday, January 29th, 2006

上一回寫到 SecureSocket 不需認證的產生方法,今次該直接寫 SecureSocket 本身的運作了。 我們可以透過 Socket sslsocket = (SSLSocket)MySSLSocketFactory.createSocket(Socket proxyConn, String logicalHost, int logicalPort, true); 在原有的連線 (指連到 Proxy 的連線)建立新的 SSL 連線。 但是,在這之前,我們要跟 Proxy 本身連線,再傳出指令請 Proxy 連到真正的伺服器: Socket proxyConn = new Socket(String proxyHost, int port); OutputStream out = proxyConn.getOutputStream(); try { out.write(cmd.toString().getBytes("ASCII7")); } catch (UnsupportedEncodingException ignored) { //ASCII7 Not supported out.write(cmd.toString().getBytes()); } cmd 是傳給代理伺服器的建立連線指令。內容如下: StringBuffer cmd = new StringBuffer(); cmd.append("CONNECT ").append(site).append(':').append(port).append(" HTTP/1.1\r\n"); cmd.append(header + "\r\n"); cmd.append("Proxy-Connection:keep-alive\r\nHost: ").append(site).append("\r\n\r\n"); 假設我要建立SSL ...

SSL Tunnel implementation on Java(1)

Friday, January 20th, 2006

SSL Tunnel 有甚麼用處我不解釋了,有空便到 google 找找看吧。簡單一點說,那是一套反生產軟件,所以千萬不要在老闆前使用。

本年最後三個工作天

Sunday, January 1st, 2006

這三天裏,我休閒得很,也悶得很。Project 順利度過了 UAT,再加上身邊的同事全部選擇去享受他們儲起來的假期,我在辦公室裏所以也沒事可做。 沒有東西可以做實在無聊透頂,而為了補足在工作間的空虛感,我居然動手寫程式 -- 為了興趣吧。第一日我在收拾這裏不符合 XHTML 1.1 的地方,也花了我整天時間。第二和第三日呢,我把我的注意力集中放在香港天文台 -- 它的氣象服務。原來天文台有提供 XML 天氣資訊服務,但費用實在貴得令人咋舌 (年費港幣 $3,310)。我想由於無人問津,服務也在零五年一月終止。 不過其實也不用透過 XML 才可以從程式取得天氣資訊吧?文字版的天文台網頁格式很整潔,所以也很容易從程式取出有用的資訊,諸如氣溫呀,濕度呀,紫外線指數呀,分區氣溫等等。這幾天我便以 Java 寫這樣的一個類別,以 Regular Expression(常規表達式)取出不同資料。 對了,我在家還把整個 Java class 的程式碼移到 PHP,那便可以在這個伺服器發放相應的 Web Service,給其他網站使用。不過天文台的資訊有版權,所以如果要公開的話我也要取得相關許可才能這樣做。 但不知道發放提取程式的源碼如何呢?情況有點像 BT 或其他 P2P 軟件 -- 提取工具本身並不犯法,但提取有版權保護的資訊才會涉及侵權。我想我也可以公開源碼吧,就把那個 Java class 貼出來好了。 還有,祝大家在新的一年,有一個新的開始。新年快樂... 噢,不要「快落」,新年愉快才對。 程式碼在這裏下載。

IBM:沉默的巨人

Monday, November 14th, 2005

不久前 IBM 的個人電腦業務正式轉給聯想經營,當然是因為 IBM 個人電腦銷售情況欠佳(這種古老的設計,有人會買嗎?),而大批購買的辦公室電腦又敗給戴爾(Dell)了,PC 市場自然沒有留戀的理由。聯想能不能令那毫無起息的個人電腦業務重新是另一回事,倒想談談 IBM 還有甚麼可以發展的地方。 另一件較廣為人知關於 IBM 的新聞當然是下一代的遊戲主機 PS3,XBox 360 統統轉用 IBM 的 Cell 和 PowerPC 處理器。每顆處理器的利潤我想也有三成吧,但是開發處理器的費用高昂,而 Cell 又不是打零售市場,只做處理器生意看來並不划算。IBM 早前宣佈他們日後的定位是搞 B2B 為企業提供服務,而這又是甚麼樣的服務呢? IBM 為大公司推出的產品可多著了,可以說是一條龍全包服務:由大型主機(mainframe) 的 zSeries 和 OS/400,中小型伺服器如 iSeries,xSeries,pSeries 等等也是 IBM 的天下 (特別是大型主機方面)。當然還有大型印表機和收銀機,但市場佔有就沒那麼大了。軟體就更厲害了:由網絡整合和管理的 Tivoli 系列,內部通訊的 Lotus,資料庫 DB2(資料庫是最弱的一環啊),應用伺服器及Portal Server WebSphere,軟體開發的 Rational 系列(當然也就包括了 UML 繪圖會用上的 Rational Rose)。 近來 IBM 好像有意「控制」 Java 市場。先是給 ...

What I hate about Java…

Thursday, October 20th, 2005

Time to do some Java bashing... 我想,要痛恨一個人,最好便是和他/她共事。和他/她共事,你可以真真正正認識他/她的性格,便會知道厭惡他/她的理由。和 Java 共事的這幾個月,我開始有點恨 Java 的瑕疪,而在編譯工作進行的時候,有空看看 Ruby 的 doc,噢,原來 Ruby 這麼美。 Java 有甚麼問題?不,JVM 不是問題。靠寫程式來糊口的人,效能不是我的 concern,反正公司有能力買更快更強的伺服器來 compensate 就是了。那些是系統管理員要注意的事。我著緊的,是語言的自由度和可用性。

讀書報告:爪哇夜未眠 - Java 程式員的心聲

Wednesday, March 30th, 2005

因為家裏沒人,所以吃午飯的時候到了新城市逛逛和找東西吃。路經公共圖書館,心裏覺得不進去就此路過未免太可惜,所以忍不住要入去看看書架。結果就給我找到這本有趣而實用的「編程散文集」了。