自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計淺析

開發(fā)
C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計向你介紹了在采用的是異步阻塞的方式下如何實現(xiàn)的C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計,希望對你學(xué)習(xí)C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計有所幫助。

C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計淺析

在下面接受的程序中,我們采用的是異步阻塞的方式。

C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計(1).首先要要在給定的端口上面創(chuàng)建一個"tcpListener"對象偵聽網(wǎng)絡(luò)上面的請求。當(dāng)接收到連結(jié)請求后通過調(diào)用"tcpListener"對象的"AcceptSocket"方法產(chǎn)生一個用于處理接入連接請求的Socket的實例。下面是具體實現(xiàn)代碼:

  1. //創(chuàng)建一個tcpListener對象,此對象主要是對給定端口進行偵聽  
  2. tcpListener = new TcpListener ( 1234 ) ;  
  3. //開始偵聽  
  4. tcpListener.Start ( ) ;  
  5. //返回可以用以處理連接的Socket實例  
  6. socketForClient = tcpListener.AcceptSocket ( ) ; 

C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計(2).接受和發(fā)送客戶端數(shù)據(jù):

此時Socket實例已經(jīng)產(chǎn)生,如果網(wǎng)絡(luò)上有請求,在請求通過以后,Socket實例構(gòu)造一個"NetworkStream"對象,"NetworkStream"對象為網(wǎng)絡(luò)訪問提供了基礎(chǔ)數(shù)據(jù)流。我們通過名稱空間"System.IO"中封裝的二個類"StreamReader"和"StreamWriter"來實現(xiàn)對"NetworkStream"對象的訪問。其中"StreamReader"類中的ReadLine ( )方法就是從"NetworkStream"對象中讀取一行字符;"StreamWriter"類中的WriteLine ( )方法就是對"NetworkStream"對象中寫入一行字符串。從而實現(xiàn)在網(wǎng)絡(luò)上面?zhèn)鬏斪址旅媸蔷唧w的實現(xiàn)代碼:

  1. try 
  2. {  
  3. //如果返回值是"true",則產(chǎn)生的套節(jié)字已經(jīng)接受來自遠方的連接請求  
  4. if ( socketForClient.Connected )  
  5. {  
  6. ListBox1.Items.Add ( "已經(jīng)和客戶端成功連接!" ) ;  
  7. while ( true )  
  8. {  
  9. //創(chuàng)建networkStream對象通過網(wǎng)絡(luò)套節(jié)字來接受和發(fā)送數(shù)據(jù)  
  10. networkStream = new NetworkStream ( socketForClient ) ;  
  11. //從當(dāng)前數(shù)據(jù)流中讀取一行字符,返回值是字符串  
  12. streamReader = new StreamReader ( networkStream ) ;  
  13. string msg = streamReader.ReadLine ( ) ;  
  14. ListBox1.Items.Add ( "收到客戶端信息:" + msg ) ;  
  15. streamWriter = new StreamWriter ( networkStream ) ;  
  16. if ( textBox1.Text != "" )  
  17. {  
  18. ListBox1.Items.Add ( "往客戶端反饋信息:" + textBox1.Text ) ;  
  19. //往當(dāng)前的數(shù)據(jù)流中寫入一行字符串  
  20. streamWriter.WriteLine ( textBox1.Text ) ;  
  21. //刷新當(dāng)前數(shù)據(jù)流中的數(shù)據(jù)  
  22. streamWriter.Flush ( ) ;  
  23. }  
  24. }  
  25. }  
  26. }  
  27. catch ( Exception ey )  
  28. {  
  29. MessageBox.Show ( ey.ToString ( ) ) ;  

C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計(3).***別忘了要關(guān)閉所以流,停止偵聽網(wǎng)絡(luò),關(guān)閉套節(jié)字,具體如下:

  1. //關(guān)閉線程和流  
  2. networkStream.Close ( ) ;  
  3. streamReader.Close ( ) ;  
  4. streamWriter.Close ( ) ;  
  5. _thread1.Abort ( ) ;  
  6. tcpListener.Stop ( ) ;  
  7. socketForClient.Shutdown ( SocketShutdown.Both ) ;  
  8. socketForClient.Close ( ) ; 

C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計有所幫助。

【編輯推薦】

  1. C#網(wǎng)絡(luò)編程基本概念TCP淺析
  2. C#網(wǎng)絡(luò)聊天程序三大模式淺析
  3. C#服務(wù)端端口偵聽淺析
  4. C#服務(wù)端與客戶端連接實現(xiàn)淺析
  5. C#網(wǎng)絡(luò)編程入門基礎(chǔ)知識淺析
責(zé)任編輯:仲衡 來源: bianceng.cn
相關(guān)推薦

2009-08-21 17:39:20

服務(wù)器端程序C#網(wǎng)絡(luò)編程

2009-08-21 17:48:43

C#網(wǎng)絡(luò)編程

2009-08-21 14:34:34

C#服務(wù)器端表達式

2009-09-02 17:28:26

C#程序設(shè)計Windows窗體

2009-08-21 17:53:25

C#網(wǎng)絡(luò)編程客戶端程序

2020-06-02 14:57:06

Linux服務(wù)器架構(gòu)

2010-10-15 08:57:15

PHP多進程

2015-10-27 09:40:31

TCPIP網(wǎng)絡(luò)協(xié)議

2012-05-07 13:55:41

JavaJava Web

2009-09-02 17:53:42

C#程序設(shè)計Windows窗體

2011-07-26 11:07:08

JavaScript

2012-10-15 13:40:15

IBMdw

2009-08-21 14:03:04

C#網(wǎng)絡(luò)編程

2010-08-30 13:58:43

服務(wù)器端數(shù)據(jù)庫

2009-08-21 15:22:56

端口偵聽

2009-08-14 11:00:16

C#創(chuàng)建Windows

2014-01-15 10:06:30

vFlash

2009-09-02 13:22:23

C#組件化程序設(shè)計

2017-11-15 09:49:03

運維服務(wù)器端系統(tǒng)

2009-08-21 14:50:50

C#下MySQL連接字
點贊
收藏

51CTO技術(shù)棧公眾號