程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#.net同步異步SOCKET通訊和多線程總結(5)

C#.net同步異步SOCKET通訊和多線程總結(5)

編輯:關於C語言

線程銷毀:

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整數位的高價存儲,在協議的頭文件中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved