[size=large]
在進入大二開始,我們這群it初步者也開始了在通訊階段的學習、接觸通訊之前也只是隱隱約約地從周圍同學那了解到它有多麼地重要,在我們的學習中佔很大一部分時間;僅僅這些還是沒有讓我們感覺到它的重要性、真正體現了它的重要性的是斌哥的一句話:「無通訊不軟體」。可見我們要想做像樣的軟體、還是得好好地運用通訊方面的知識了。
在學習的開始、我們是通過命令列來與自己建立的伺服器連線的,這樣的通訊讓我們容易接受和了解、我們自己 建立伺服器的過程比較簡單、只是負責接收來自命令列(即客服端)的訊息並將其列印出來;其建立**:serversocket
ss=new serversocket(port);這裡ss就是建立的伺服器、而port是自己需要給定的埠;關於這個埠、一般我們的電腦擁有的埠是0-65535;而其中0-1024的埠編號稱為「知名埠」這是電腦機器已經設定好了的埠號,以便用於連線網路等各種其他網路連線;伺服器建立好了後、我們要讓它處於等待連線狀態,socket client=ss.accept();這樣我們就可以用乙個客服端來連線了。。。。
伺服器建立好了後、我們需要建立乙個客服端,客服端的建立也是比較簡單的;socket s=new socket(ip,port);其中ip為客服端連線的伺服器的ip位址、port是為伺服器提供連線的埠;通過這兩個引數就可以跟伺服器連線了。。。
伺服器跟客服端連線好了後、下面我們需要來處理兩者之間的通訊;在這裡、它們之間要想達到一種通訊順利和暢通的效果,我們需要對客服端和伺服器兩者給定好彼此之間的通訊協議、在這開始學習間,其協議比較簡單、就是要求我們怎麼讀就怎麼寫;比如我們在客服端傳送一段文字、那麼我們在傳送這段文字之前,需要做些什麼呢?難道我們就直接將這段文字傳送過去就可以了嗎?當然、如果我們僅僅從只傳送文字這塊來說是可以的。。但是、實際生活中,我們的軟體需要做的有很多、不是僅僅侷限傳送文字,所以、我們在傳送這段文字之前,我們需要先將其文字的長度讀進去、接著我們還要把文字的標誌傳送過去、好讓對方接收到做出那種情況的接收。。。然後、我們就可以將這段文字傳送過去了。。。在接收的一端、我們收的先是長度,這沒什麼關係,也不必做什麼處理、然後接著的是傳送資料的用途(即標誌)讀取到這個後、就要求我們對其做出相應的反應,標誌是用於接收文字的、則我們就按文字傳送的過程進行讀取;這樣我們得到的通訊內容就不會有差錯了。。。
在上面、貌似我們將通訊的處理得差不多了。。但我告訴你、這裡還有很大一問題,因為我們給的標誌沒有很好的處理、我們的標誌僅僅用數字1、2、3等標誌、要知道我們傳送訊息是以位元組的形式傳送的、那麼很可能我們會將讀取的訊息中某個位元組編碼當做識別符號來讀取、那樣就會導致通訊出問題了。。。所以、一般地、我們需要好好處理這個標識問題:在一般的大型通訊軟體中、它們用的標識是xmpp訊息格式定義。其定義如下:所有的訊息包括在為為標籤的一段字串內:具體訊息必須是以開頭,以結尾。
比如:登入請求
login
user
pwd當我們接收時,需要將訊息提取出來、比如:string msg=readstring();
string type=getxmlvalue("type",msg);//解發布訊息型別
string user=getxmlvalue("name",user);
string pwd=getxmlvalue("pwd",pwd);
這樣、我們就可以將資訊完全地解發布來,而其中引起的資料錯誤的可能性就很少很少了。。。
已經兩點多了。。下午還得去上課、所以有關通訊方面的介紹暫時到這裡、上面還有很多需要補充、比如資料的讀取和寫入過程。。。有時間、我再補充吧。。。再見了。。
[/size]
2011 11 9技術部落格
現在已近是開學第十一周了,但正式上課菜才三周,上一周主要學了c 的一些基本程式設計。有三種基本結構,順序,分支,和迴圈。重點學了分支結構設計,if語句和switch語句。我覺得if語句還是挺簡單的,無非就兩種if 表示式1 語句1 else if 表示式2 語句2 else else 語句n 要注意...
技術部落格1
connect,是qt 中的連線函式 將訊號傳送者sender物件中的訊號signal與接受者receiver中的member槽函式 聯絡起來。qobject connect的定義是這樣的 static bool connect const qobject sender,const char sig...
技術部落格003
從qobject qobject.h 原始碼中可以看到qobject connect的定義是這樣的 cpp view plain copy static bool connect const qobject sender,const char signal,const qobject receive...