原创 UDP Socket編程系列一

最近做網絡編程用到Socket,把一點經驗記錄下來: UDP Socket通訊,分爲Server和Client端,如果出現不能通訊數據的情況可以從下面2個方面考慮: 1. 收發端IP地址是否配置合適 2. 收發端口是否匹配,也就是說發送端

原创 大端小端轉換

大小端轉換方法: #include<stdlib.h> #include<stdio.h> #define Tranverse16(X)                 ((((UINT16)(X) & 0xff00) >> 8) |((

原创 讀文件最後一行數據重複出現解決辦法

讀文件時,使用feof()判斷文件是否結束,使用時發現文件最後的數據會重複出現一次,比較令人費解! 源代碼:#include<stdio.h>#include <stdlib.h>struct BlockInfo{ int index; 

原创 struct sockaddr 與 struct sockaddr_in 蒐集

struct sockaddr {unsigned short sa_family;     /* address family, AF_xxx */char sa_data[14];                 /* 14 byte

原创 P2PCenter編譯錯誤處理

 P2PCenter項目簡介: 項目簡介: P2P點播直播開源項目是一個由Kevin發起,多人蔘與開發並不斷更新,符合GPL開源協議的開源項目。 項目成員: 系統架構及初期開發: 符文科(Kevin), 馬軍(Mark), 張威, 高成,

原创 滑動窗口

UDP模擬TCP滑動窗口實現數據安全可靠傳輸(C#)(本文網址:http://www.jellon.cn/index.php/archives/194)Jellon 發表於 2009-11-27 16:23 最近需要實現P2P也就是需要做

原创 回調函數

 //c語言回調函數/**************************************************************************************************Descriptio

原创 判斷本機IP地址是公網地址還是私網地址

對於ip是否是公網ip,網上已經有很多文章進行了描述。但我每次都記不太住,總要查找一下才又清楚。因此決定在這裏記錄下來,方便以後查詢:) ip地址分爲五類。E類爲保留爲今後使用,D類爲組播地址。用於主機網絡地址的就是A類、B類、C類了。

原创 OPAL類繼承圖

最近學習OPAL和PTLIB(OPAL庫依賴於PTLIB庫)庫,把OPAL設計類的繼承關係整理出來,和朋友們分享。圖中,最下面的幾個類是孤立的,上面那些類由POBJECT類擴展而來。  

原创 幾種同步手段(互斥量,信號量,事件,臨界區)

設計目標:模擬一個售票系統,有兩個線程可以出售,總共100張票。中間打印出出售的信息。這裏的票是一個臨界資源,同時,控制檯也是個臨界資源。(如果同時輸出會造成屏幕的混亂)原始程序:#include <stdio.h>#include <i

原创 RTP/RTCP協議

完整的C/S架構的基於RTP/RTCP的H.264視頻傳輸方案。此方案中,在服務器端和客戶端分別進行了功能模塊設計。服務器端:RTP封裝模塊主要是對H.264碼流進行打包封裝;RTCP分析模塊負責產牛和發送RTCP包並分析接收到的RTCP

原创 流媒體相關知識介紹 及其 RTP 應用 (轉)

一、流媒體簡介 隨着Internet的日益普及,在網絡上傳輸的數據已經不再侷限於文字和圖形,而是逐漸向聲音和視頻等多媒體格式過渡。目前在網絡上傳輸音頻/視頻(Audio/Video,簡稱A/V)等多媒體文件時,基本上只有下載和流式傳輸兩

原创 RTP協議IP電話QoS監測及提高策略

  1 引言 隨着Internet和多媒體技術的飛速發展,Internet已由早期的單一數據傳輸網向多媒體數據(視頻、音頻、文本等)綜合傳輸網發展。但Internet提供的只是盡力而爲的服務,不能滿足多媒體應用程序對傳輸延遲、包丟失、抖動

原创 TCP Socket

                                                               Tcp socket 收發數據流程圖 服務器端代碼: WORD wVersionRequested; WSAD

原创 Windows中系統調用的流程

Windows中系統調用的流程潘愛民,2010.9.24 在《Windows內核原理與實現》一書,我曾經詳細地解析了Windows應用程序發出的系統調用,經過ntdll.dll中的stub函數,再通過sysenter/syscall或in