掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計淺析

專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計、成都做網(wǎng)站、商城系統(tǒng)網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
在下面接受的程序中,我們采用的是異步阻塞的方式。
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)代碼:
- //創(chuàng)建一個tcpListener對象,此對象主要是對給定端口進(jìn)行偵聽
- tcpListener = new TcpListener ( 1234 ) ;
- //開始偵聽
- tcpListener.Start ( ) ;
- //返回可以用以處理連接的Socket實例
- 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)代碼:
- try
- {
- //如果返回值是"true",則產(chǎn)生的套節(jié)字已經(jīng)接受來自遠(yuǎn)方的連接請求
- if ( socketForClient.Connected )
- {
- ListBox1.Items.Add ( "已經(jīng)和客戶端成功連接!" ) ;
- while ( true )
- {
- //創(chuàng)建networkStream對象通過網(wǎng)絡(luò)套節(jié)字來接受和發(fā)送數(shù)據(jù)
- networkStream = new NetworkStream ( socketForClient ) ;
- //從當(dāng)前數(shù)據(jù)流中讀取一行字符,返回值是字符串
- streamReader = new StreamReader ( networkStream ) ;
- string msg = streamReader.ReadLine ( ) ;
- ListBox1.Items.Add ( "收到客戶端信息:" + msg ) ;
- streamWriter = new StreamWriter ( networkStream ) ;
- if ( textBox1.Text != "" )
- {
- ListBox1.Items.Add ( "往客戶端反饋信息:" + textBox1.Text ) ;
- //往當(dāng)前的數(shù)據(jù)流中寫入一行字符串
- streamWriter.WriteLine ( textBox1.Text ) ;
- //刷新當(dāng)前數(shù)據(jù)流中的數(shù)據(jù)
- streamWriter.Flush ( ) ;
- }
- }
- }
- }
- catch ( Exception ey )
- {
- MessageBox.Show ( ey.ToString ( ) ) ;
- }
C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計(3).***別忘了要關(guān)閉所以流,停止偵聽網(wǎng)絡(luò),關(guān)閉套節(jié)字,具體如下:
- //關(guān)閉線程和流
- networkStream.Close ( ) ;
- streamReader.Close ( ) ;
- streamWriter.Close ( ) ;
- _thread1.Abort ( ) ;
- tcpListener.Stop ( ) ;
- socketForClient.Shutdown ( SocketShutdown.Both ) ;
- socketForClient.Close ( ) ;
C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計有所幫助。
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流