Time of Update: 2018-12-05
參考Programming Windows TCP Sockets in C++ for the Beginners(見codeproject), socket I/O模型選擇WSAAsyncSelect進行編程時,參考代碼有個bug:Server端第一次串連並讀取Client端發送的buffer OK, 第二次就沒有FD_READ事件了。 問題相關代碼 WSAAsyncSelect (s, hwnd, 1045, FD_READ | FD_CONNECT | FD_CLOSE |
Time of Update: 2018-12-05
再也不用小心翼翼的實驗各種資料類型轉換的API看看是否能達到自己想要的效果。只需強制類型轉換與位元運算結合,各種資料類型轉換就能很輕鬆的實現。 拋磚引玉一下。#include "Windows.h"///////////////////////////////////////////////////sld 字串轉換為指標值/////////////////////////////////////////////////void atop(char* src, void** pp){DWORD
Time of Update: 2018-12-05
本程式源於一個想法,如何將圖片直接上傳到FTP。能想到的一個可行的方法就是在Ftp網站下建立一個檔案,開啟檔案並傳輸資料。吸取了OpenCV教程一書例4-4與例4-5及相關知識。本項目由以下兩個有機組成部分構成:1、將映像的顏色資料存入檔案2、從檔案讀取要求地區的映像的顏色資料本項目由以下兩個有機組成部分構成:1、將映像的顏色資料存入檔案2、從檔案讀取要求地區的映像的顏色資料 #include "cxcore.h"#include "highgui.h"#include "stdlib.h"in
Time of Update: 2018-12-05
1、basicCall,basicMessage,basicRegister,resip_test測試用的 2、db_static Sleepy Cat開發的Berkeley DB 3、dum為Dialog UsageManager的縮寫,包含UAC和UAS,具體是處理各種內部訊息以及檢驗SipMessage的格式(解密) 4、reproProxy,協調了sip,SDP,rtp,並Process Sip Message 5、resiprocate主要部分Sip
Time of Update: 2018-12-05
最大約數個數演算法分析實驗問題描述正整數x的約數是能整除x的正整數。正整數x的約數個數記為div(x),例如,1,2,5,10都是正整數10的約數,且div(10)=4.設a和b是2個正整數,a<=b,找出a和b當中約數個數最多的數x,輸出其約數個數值。實驗目的本次實驗通過利用數論知識,建立素數表,彌補累除法在時間複雜度上的缺陷,同時又結合累除法在小範圍內能夠計算出最準確的約數個數的特性,在時間複雜度上獲得最大的最佳化。實驗知識準備過程累除法的基本思想:計算正整數a的約數個數時,先設定一個
Time of Update: 2018-12-05
Varchar 對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也只佔用兩個位元組char 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組Varchar 的類型不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"而char 不一樣,比如char(100),它的值是"qian",而實際上它在資料庫中是"qian "(qian後共有96個空格,就是把它填滿為100個位元組)。由於char是以固定長度的,所以它的速度會比varchar
Time of Update: 2018-12-05
定義了二維數組vector<vector<int> > array;(注意後面空一格)有下面幾種賦值方式1、 typedef struct tagVector{}vector<blob> arr; 2、for(int i=0;i!=10;++i){ vec.push_back(vector (10)); for(int j=0;j!=10;++j){ vec[i][j]=i*j; } } 3、
Time of Update: 2018-12-05
我覺得大家對ReSIProcate存在一個誤區。大多數人接觸ReSIProcate基於應用的目的,考慮採用ReSIProcate服務於應用的時候總是要問ReSIProcate支援不支援某種應用,比如支援不支援語音編碼啦,支援不支援電話多方視頻會議啦,支援不支援MFC啦......甚至於在問這些問題之前對ReSIProcate是什麼一無所知。在將ReSIProcate考慮入應用的候選行列之前,總該先問下ReSIProcate是什麼吧。 ReSIProcate是什麼,按我的理解,其實很簡單,也就是收
Time of Update: 2018-12-05
在ITI-9中描述PIX query事務的幾個TestCase情境。其中有些是對於Query失敗的描述。ERR 段包含Error location, Error code, Error code text, 以及Error Alernate code和Error Alernate code text.而Error location包含segment id, segment sequence, field position, field repetition, component number,
Time of Update: 2018-12-05
在無註冊認證的過程中,通過捕獲資料包,發現每隔20秒,使用者代理程式向伺服器發送一個UDP資料包,資料包僅僅是4個位元組的資料:6a 61 4b 00.在不同的伺服器中發現時間的間隔是變化 的。 在向SIP Server 2008註冊的過程中,發現基本配置選項中存在時間間隔的概念,同時限制最大跳數。問題1:T1間隔是什麼,問題2:為什麼會發送UDP資料包給伺服器問題3:Proxy
Time of Update: 2018-12-05
文章目錄 方案二 問題背景 錄音播音實際需求1、隨時終止2、錄音並非檔案,而是形成rtp發送3、播音並非源於檔案,而是源於rtp 因此Waveform audio使用的buffer較小,不斷的裝載/發送
Time of Update: 2018-12-05
void getfilelist(const char*Url,char*taskfile){ HINTERNET hSession = InternetOpen("RookIE/1.0", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL); if (hSession != NULL) { HINTERNET handle2 = InternetOpenUrl(hSession, Url, NULL, 0,
Time of Update: 2018-12-05
早在08年3月份開始程式開發的職業生涯之前,就聽說程式員工作就是拷貝+粘貼,搭積木式的完成項目。那時我就跟自己說工作時要注意經驗積累。開這個CSDN部落格也是基於這樣想法的一種嘗試。 最近看到某牛人的博文推薦一個介面庫:RingSDK,談到 “這是我自己寫的介面庫,編程一直用他,包含了介面庫和圖象庫。這個庫並不是有意為之,而是我多年編程過程中積累下來的。最初只是把一些經常要用到的功能封裝成一些函數,建了一個靜態庫,方便自己編程,後來慢慢積累,函數越來越多,於是封裝成類,再後來簡單的封裝也不行了,
Time of Update: 2018-12-05
花了兩天時間閱讀SIPp的文檔,包括SIPp Reference Document,STSLabs User Manual。 頗有些說明書控的感覺,一切準備好了,開始進行了使用SIPp測試ReSIProcate的Proxy的實踐,沒想到頗為不順,於是有了這篇博文,記錄一下個人經驗,以供後人借鑒。 一開始按照說明Run sipp with embedded server (uas) scenario: ./sipp -sn uas -p 5064 On the same host,
Time of Update: 2018-12-05
使用STL演算法的時候,如何傳遞函數對象的時候附帶使用者自訂型別參數呢。兩種等效形式形式一bool greater1000(int n){ greater<int>gt; return gt(n, 1000);}形式二bind2nd(gt, 1000); 兩種等效形式在調用方面是一致的 greater1000(1500);(bind2nd(gt,
Time of Update: 2018-12-05
2個表, ip_list 和 it_audit_checklist , 表'ip_list'中有欄位:ip,user_name,dept,obu,remark,ip和obu為關鍵字。表'it_audit_checklist'中有欄位:ip,obu,user_name,dept,pc_plus_install,ad_install等欄位,ip和obu為關鍵字。
Time of Update: 2018-12-05
從表2中取一些資料插入表1中 方法如下insert into table1 (colum1,colum2) select 'admin', colum2 from table2在表2中 colum1 欄位不存在 可以用'admin' 替代 則插入的記錄中 colum1 欄位值全為 'admin'尋找前3條記錄的SQL語句為select top 3 * from table1一次插多條還有一種寫法(對新表好用)select colum1,colum2 into table1 from table2
Time of Update: 2018-12-05
STUN-Simple Traversal of User Datagram Protocol (UDP) Through NetworkAddress Translators (NATs),基於UDP,關於STUN介紹不再贅述,想要瞭解的話可以參考stun協議RFC
Time of Update: 2018-12-05
1)#include <winsock2.h> #pragma comment(lib, "ws2_32.lib")2) //初始化網路網路通訊端,儘管沒有過多的進行判斷是否成功WORD wVersionRequested;WSADATA wsaData;wVersionRequested=MAKEWORD(2,0);WSAStartup(wVersionRequested,&wsaData);3) //需要載入Winsocket通訊端庫char szHostName[
Time of Update: 2018-12-05
本壓力測試基於ReSIProcate 1.5版本的basicCall項目修改,並且在ReSIProcate 1.5的Proxy測試通過,理論上應該也能針對其它Proxy進行壓力測試。 如何使用1、下載ReSIProcate 1.52、從http://www.pudn.com/downloads188/sourcecode/internet/tcp_ip/detail882742.html下載basicCall.zip檔案解壓,並將其中的basicCall.cxx覆蓋到/resiprocate-1