原创 7、使用listen()和accept()函數

對於服務器端程序,使用 bind() 綁定套接字後,還需要使用 listen() 函數讓套接字進入被動監聽狀態,再調用 accept() 函數,就可以隨時響應客戶端的請求了。 listen() 函數 通過 listen() 函數可以讓套

原创 3、一個簡單的Windows下的socket程序

上節演示了 Linux 下的 socket 程序,這節來看一下 Windows 下的 socket 程序。同樣,server.cpp 爲服務器端代碼

原创 2、一個簡單的Linux下的socket程序

和C語言教程一樣,我們從一個簡單的“Hello World!”程序切入 socket 編程。 本節演示了 Linux 下的代碼,server.cpp

原创 Cocos2d-JS 熱更新

前言 工作需要,在空閒時間看了下Cocos2d-JS的熱更新。對其進行了一個簡單的實現,這裏總結分享一下。 Cocos2d-JS 熱更新 Cocos2d-JS 熱更新是啥?Cocos2d-JS終歸還是一個遊戲引擎,就以遊戲的

原创 深入理解JavaScript系列(47):對象創建模式(上篇)

介紹 本篇主要是介紹創建對象方面的模式,利用各種技巧可以極大地避免了錯誤或者可以編寫出非常精簡的代碼。 模式1:命名空間(namespace) 命名空間可以減少全局命名所需的數量,避免命名衝突或過度。一般我們在進行對象層級定義的時

原创 深入理解JavaScript系列(41):設計模式之模板方法

介紹 模板方法(TemplateMethod)定義了一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 模板方法是一種代碼複用的基本技術,在類庫中尤爲重要,因爲

原创 深入理解JavaScript系列(43):設計模式之狀態模式

介紹 狀態模式(State)允許一個對象在其內部狀態改變的時候改變它的行爲,對象看起來似乎修改了它的類。 正文 舉個例子,就比如我們平時在下載東西,通常就會有好幾個狀態,比如準備狀態(ReadyState)、下載狀態(Downlo

原创 9、回聲客戶端的實現

所謂“回聲”,是指客戶端向服務器發送一條數據,服務器再將數據原樣返回給客戶端,就像聲音一樣,遇到障礙物會被“反彈回來”。對!客戶端也可以使用 write() / send() 函數向服務器發送數據,服務器也可以使用 read() / re

原创 深入理解JavaScript系列(42):設計模式之原型模式

介紹 原型模式(prototype)是指用原型實例指向創建對象的種類,並且通過拷貝這些原型創建新的對象。 正文 對於原型模式,我們可以利用JavaScript特有的原型繼承特性去創建對象的方式,也就是創建的一個對象作爲另外一個對象

原创 4、WSAStartup()函數以及DLL的加載

WinSock(Windows Socket)編程依賴於系統提供的動態鏈接庫(DLL),有兩個版本: 較早的DLL是 wsock32.dll,大小爲 28KB,對應的頭文件爲 winsock1.h;最新的DLL是 ws2_32.dll,大

原创 5、使用socket()函數創建套接字

在Linux中,一切都是文件,除了文本文件、源文件、二進制文件等,一個硬件設備也可以被映射爲一個虛擬的文件,稱爲設備文件。例如,stdin 稱爲標準輸入文件,它對應的硬件設備一般是鍵盤,stdout 稱爲標準輸出文件,它對應的硬件設備一般

原创 深入理解JavaScript系列(44):設計模式之橋接模式

介紹 橋接模式(Bridge)將抽象部分與它的實現部分分離,使它們都可以獨立地變化。 正文 橋接模式最常用在事件監控上,先看一段代碼: addEvent(element, 'click', getBeerById); funct

原创 深入理解JavaScript系列(46):代碼複用模式(推薦篇)

介紹 本文介紹的四種代碼複用模式都是最佳實踐,推薦大家在編程的過程中使用。 模式1:原型繼承 原型繼承是讓父對象作爲子對象的原型,從而達到繼承的目的: function object(o) { function F()

原创 深入理解JavaScript系列(48):對象創建模式(下篇)

介紹 本篇主要是介紹創建對象方面的模式的下篇,利用各種技巧可以極大地避免了錯誤或者可以編寫出非常精簡的代碼。 模式6:函數語法糖 函數語法糖是爲一個對象快速添加方法(函數)的擴展,這個主要是利用prototype的特性,代碼比較簡

原创 深入理解JavaScript系列(45):代碼複用模式(避免篇)

介紹 任何編程都提出代碼複用,否則話每次開發一個新程序或者寫一個新功能都要全新編寫的話,那就歇菜了,但是代碼複用也是有好要壞,接下來的兩篇文章我們將針對代碼複用來進行討論,第一篇文避免篇,指的是要儘量避免使用這些模式,因爲或多或少有帶