線程銷毀:
Thread.Abort,Thread.Interrupt
Abort方法引發ThreadAbortException,開始中止此線程的過程,是一個可以由應用程序代碼捕獲的特 殊異常,ResetAbort可以取消Abort請求,可以組織ThreadAbortException終止此線程,線程不一定會立 即終止,根本不終止。
對尚未啟動的線程調用Abort,則當調用Start時該線程將終止。對已經掛起的線程調用Abort,則該線 程將繼續,然後終止。對阻塞或正在休眠的線程調用Abort,則該線程被中斷,然後終止。
Thread類的Abort方法:
Public void Abort()
Public void Abort(object stateinfo);
演示:
Thread thread=new Thread(new ThreadStart(accp));
Thread.Start ();
Thread.Abort();
Thread.Join(10000);
Socket編程原理:
Unix的i/o命令集,模式為開-讀/寫-關 open write/read close
用戶進程進行i/o操作
用戶進程調用打開命令,獲取文件或設備的使用權,並返回描述文件或設備的整數,以描述用戶打開 的進程,該進程進行讀寫操作,傳輸數據,操作完成,進程關閉,通知os對哪個對象進行了使用。
Unix網絡應用編程:BSD的套接字socket,unix的System V 的TLI。
套接字編程的基本概念:
網間進程通信:源於單機系統,每個進程在自己的地址范圍內進行運行,保證互相不干擾且協調工作 。操作系統為進程之間的通信提供設施:
Unix BSD 管道pipe,命名管道named pipe軟中斷信號signal
Unix System V 消息message 共享存儲區 shared memory 信號量semaphore
以上僅限於本機進程之間通信。
端口:網絡上可以被命名和尋址的通信端口,是操作系統可以分配的一種資源,網絡通信的最終地址 不是主機地址,是可以描述進程的摸中標識符。TCP/IP提出協議端口porotocol port端口,表示通信進程 。
進程通過os調用綁定連接端口,而在傳輸層傳輸給該端口的數據傳入進程中處理,同樣在進程的數據 需要傳給傳輸層也是通過綁定端口實現。進程對端口的操作相當於對os中的i/o文件進行操作,每一個端 口也對應著一個端口號,tcp/ip協議分為tcp和udp,雖然有相同port number的端口,但是互相也不沖突 。 端口號的分配有全局分配,本地分配(動態分配),當進程需要訪問傳輸層,os分配給進程一個端口 號。全局分配,就是os固定分配的端口,標准的服務器都有固定的全局公認的端口號提供給服務。小於 256的可以作為保留端口。
地址:網絡通信中的兩台機器,可以不再同一個網絡,可能間隔(網關,網橋,路由器等),所以可 以分為三層尋址
機器在不同的網絡則有該網絡的特定id
同一個網絡中的機器應該有唯一的機器id
一台機器內的進程應該有自己的唯一id
通常主機地址=網絡ID+主機ID tcp/ip中使用16位端口號來表示進程。
網絡字節順序,高價先存,tcp和udp都使用16或32整數位的高價存儲,在協議的頭文件中。