4日 星期三
1:在visual studio 對浮點數下條件斷點,示例代碼如下:
float fval;
......
add(fval, 1.0); 在這一段上下了條件斷點 fval==2.5.但是始終不會斷下來,
后來下(int)(fval*10)==2.5就可以斷下來,或者fval>2.4 && fval<2.6也能成功斷下來.
2:數據類型,示例如下:
char *szBuf[10];
....
int i = szBuf[n] << 4;
本意是每個數據*16的和,但由于char是有符號的,所以當szBuf[n]中的內容大于127時,便出現了加負數的情況.
代碼改為 int i = (unsigned char)szBuf[n] << 4;就始終是正數了.
5日 星期四
配置windows 2003文件共享的問題
1:啟用guest賬戶
2:運行組策略,計算機配置--windows設置--安全設置--本地策略--用戶權利指派
a:允許從網絡訪問這臺計算機
b:拒絕從網絡訪問這臺計算機
3:計算機配置--windows設置--安全設置--本地策略--安全選項
a:網絡訪問 本地賬戶的共享訪問和安全模式, 設置為經典
b:網絡訪問: 不允許 SAM 帳戶和共享的匿名枚舉 禁用
c:帳戶: 使用空白密碼的本地帳戶只允許進行控制臺登錄 禁用
d:在windows防火墻中的例外中,對打印和文件共享打上勾.
e:在相關文件夾上開啟共享,并設置好用戶的權限.
8日 星期日
1:套接字分成兩種模式:阻塞和非阻塞模式。
阻塞套接字的含義是:在其上進行操作時,只有該操作成功執行完或者失敗后才能返回。比如recv方法,它必須在執行完后才會返回
非阻塞套接字的含議是:在其上投遞的操作,操作會立該返回,操作的結果只有等操作真正完成后,才能獲取。但投遞過程會立即返回,不會等待其完成。
2:套按字的I/O管理分成5種模型:
select模型:即可以管理阻塞套接字,也可以管理非阻塞套接字。
WSAAsyncSelect模型:是一種異步模型,只能運用于非阻塞套接字,在阻塞套接字上調用該方法時,套接字將自動轉變化非阻塞套接字。
WSAEventSelect模型:是一種異步模型,只能運用于非阻塞套接字,在阻塞套接字上調用該方法時,套接字將自動轉變化非阻塞套接字。
Overlapped I/O 事件通知模型:是一種異步模型,只能運用于非阻塞套接字。該模型與WSAEventSelect一樣是利用事件來通知,但該模型一次投遞數量是1...N
Overlapped I/O 完成例程模型:是一種異步模型,只能運用于非阻塞套接字。
3:在套接字上進行recv操作時,能捕獲到由于線路故障的異常嗎?
答:理論上不能,但許多操作系統對套接字都會有一個默認的keep alive時間,當超過這個時間時就可以檢測到,程序中也可對套接字的該選項進行設置,以盡快捕獲線路異常。
send方法可以立即捕獲,因為最后一個不能向前轉化的路由器會向本機發回一個主機不可達的icmp報文.
4:在阻塞及非阻塞套接字上可以同時進行讀寫, 寫寫嗎,讀讀嗎?
答:由于TCP/IP協議的內部實現了互斥機制,所以是可以的。只不過在進行寫寫,讀讀時,必須保證一個邏輯的多次寫或讀是原子的,也就是一次完整讀或寫機制不能間斷。
5:在套接字上投遞一個recv請求,必須要收到指定緩沖區大小才會返回嗎?
答:看recv函數中設置的flag,0:只有收到部份數據就會返回,MSG_WAITALL:必須收到指定的字節才會返回,不管flag值是什么,套接字關閉時會立該返回錯。
6:UDP數據報能無限大嗎?
答:理論上可以,但是考慮線路MTU及每個主機可接受數據包大小,一般數據報大小限制為576,除去去IP層和鏈路層的附加信息,用戶有效數據量不宜超過512個字節。
9日 星期一
1:前段公司封了外網,我們的電腦不能通過局域網上Internet了,出于聯系的需要配了一個無線網卡給我用。有個煩人的問題就是每次上用無線網卡上網時,就不能訪
問內部另外一個的局域網。今天突然想起,我可以使我的無線網卡工作于modern模式,同局域網的可以訪問,那么可以通過添加路由來解決訪問另一個網段的問題。
于是用下面的語句綁定一個主機路由。
route -p add 10.65.2.3 10.60.1.1
ping 10.65.2.3 可以ping通了,也可以打開該機器上的資源了。