原创 網絡編程中4個重要的地址數據結構

IPv4: struct sockaddr_in, 16個字節 struct sockaddr_in { sa_family_t sin_family; /* AF_INET */

原创 網絡編程第五章:服務器意外崩潰

服務器意外殺死子進程,客戶再次訪問的時候,會收到一個FIN,但是如果客戶這時阻塞在某個功能上的時候,這個功能會意外終止. 問題在於,服務器意外殺死子進程,但是客戶並不能及時收到FIN或者reset,導致客戶等待,只有客戶再次訪問,

原创 網絡編程第九章:基本SCTP套接字編程

一到一形式:主要是爲了將現有TCP移植到STCP上 1、tcp套接字選項必須轉成等效的STCP選項, 2、STCP保存消息邊界,因而應用層消息邊界非必須。也就是TCP是連接的,STCP是消息驅動的。 3、TCP支持半關閉狀態,移植

原创 網絡編程:sctp客戶服務器程序

服務器程序: #include "unp.h" int main(int argc, char **argv) { int sock_fd,msg_flags; char readbuf[BUFFSIZE]; struct

原创 網絡編程第12章: IPV4和IPV6的互操作性

IPV4客戶和IPV6服務器 TCP: 假設IPV6服務器是一個雙協議棧,也就是包含一個IPV4處理模塊和IPV6處理模塊,當數字鏈路接收到IPV4套接字,IPV4模塊就把這個IPV4地址映射爲一個等價的IPV6地址. 當acce

原创 網絡編程第十五章:Unix域協議

Unix域提供兩種套接字:字節流套接字和數據包套接字. unix域套接字地址結構: struct sockaddr_un{ sa_family_t sun_family; char sun_path[104];//必須以空串結

原创 C++:策略模式

策略模式: 定義一系列的算法,將它們封裝起來。並且使他們互相可以替換,該模式可以使算法獨立於他的客戶而實現。 就像工資,不同的工作工資的算法不同,我們不能對工資算法硬性編碼,應該是可以自由變化的, Strategy:定義所有支持

原创 網絡編程第十四章:套接字超時

在套接字上設置超時的方法有以下三種: 1 調用alarm,產生sigalarm信號, 2 在select阻塞等待IO 3 使用SO_RCVTIMEO和SO_RNDTIMEO選項。這個方法的問題在於並非所有實現都支持這個兩個選項。

原创 vim的使用

1.我們先按"I”,即切換到“插入”狀態。 2.我們要按鍵盤左上角的"ESC",留意到了沒有了 3.我們輸入“冒號”,即":"(不需雙引號),在下方會出現冒號,等待輸入命令,如圖,我輸入的是WQ。功能如下。 W:write,寫入

原创 javaWeb 使用session保持會話

jsp文件 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html

原创 狀態測試

軟件測試黑書5.5.1: 軟件測試分爲數據測試和狀態測試。 5.5.1狀態測試:通過不同的狀態驗證程序的邏輯流程。(軟件狀態是指軟件當前所處的條件或者模式) 軟件狀態是指軟件當前所處的條件或者模式   和測試數據類似,測試軟件的狀態和邏輯

原创 C++ 隨機數

以前一般使用隨機數用rand函數,rand函數有很多缺點。現在標準庫引入了新的隨機數引擎,對於生產隨機數更加方便且功能強大了。 它一般由引擎+分佈類型的方式來生成隨機數。 頭文件 #include <random> 直接用引擎生

原创 JavaWeb 獲得上傳數據

使用form表單提交數據: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <

原创 設計模式二:抽象工廠模式

步驟 1 爲產品類創建一個接口。 步驟2: 爲產品類創建一個實現類 步驟3: 爲工廠類創造一個接口 步驟4: 創造不同工廠類的抽象類 步驟5: 創造不同工廠類的抽象類的實現類 抽象工廠模式(Abstract Factory Pat

原创 javaWeb 獲得servelt初始化參數以及config爲null的問題

注意:如果是3.0以上Tomcat,具有註釋配置的功能, 這時如果@WebServlet("/HelloServlet"),即在註解中聲明一個servelt     然後你又憨憨的在web.xml中聲明瞭一遍,並且在xml中聲明瞭serv