日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#網(wǎng)絡編程服務器端程序?qū)崿F(xiàn)源碼淺析

C#網(wǎng)絡編程服務器端程序?qū)崿F(xiàn)源碼是怎么樣的呢?讓我們來看看其中重要的一部分:

公司主營業(yè)務:網(wǎng)站制作、網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出獻縣免費做網(wǎng)站回饋大家。

由于在此次程序中我們采用的結(jié)構(gòu)是異步阻塞方式,所以在實際的程序中,為了不影響服務器端程序的運行速度,我們在程序中設計了一個線程,使得對網(wǎng)絡請求偵聽,接受和發(fā)送數(shù)據(jù)都在線程中處理,請在下面的代碼中注意這一點,下面是C#網(wǎng)絡編程服務器端程序的完整代碼:

 
 
 
  1. //server.cs  
  2. using System ;  
  3. using System.Drawing ;  
  4. using System.Collections ;  
  5. using System.ComponentModel ;  
  6. using System.Windows.Forms ;  
  7. using System.Data ;  
  8. using System.Net.Sockets ;  
  9. using System.IO ;  
  10. using System.Threading ;  
  11. using System.Net ;  
  12. //C#網(wǎng)絡編程服務器端程序  
  13. //導入程序中使用到的名字空間  
  14. public class Form1 : Form  
  15. {  
  16. private ListBox ListBox1 ;  
  17. private Button button2 ;  
  18. private Label label1 ;  
  19. private TextBox textBox1 ;  
  20. private Button button1 ;  
  21. private Socket socketForClient ;  
  22. private NetworkStream networkStream ;  
  23. private TcpListener tcpListener ;  
  24. private StreamWriter streamWriter ;  
  25. private StreamReader streamReader ;  
  26. private Thread _thread1 ;  
  27. private System.ComponentModel.Container components = null ;  
  28. public Form1 ( )  
  29. {  
  30. InitializeComponent ( ) ;  
  31. }  
  32. //C#網(wǎng)絡編程服務器端程序  
  33. //清除程序中使用的各種資源  
  34. protected override void Dispose ( bool disposing )  
  35. {  
  36. if ( disposing )  
  37. {  
  38. if ( components != null )  
  39. {  
  40. components.Dispose ( ) ;  
  41. }  
  42. }  
  43. base.Dispose ( disposing ) ;  
  44. }  
  45. private void InitializeComponent ( )  
  46. {  
  47. label1 = new Label ( ) ;  
  48. button2 = new Button ( ) ;  
  49. button1 = new Button ( ) ;  
  50. ListBox1 = new ListBox ( ) ;  
  51. textBox1 = new TextBox ( ) ;  
  52. SuspendLayout ( ) ;  
  53. label1.Location = new Point ( 8 , 168 ) ;  
  54. label1.Name = "label1" ;  
  55. label1.Size = new Size ( 120 , 23 ) ;  
  56. label1.TabIndex = 3 ;  
  57. label1.Text = "往客戶端反饋信息:" ;  
  58. //C#網(wǎng)絡編程服務器端程序  
  59. //同樣的方式設置其他控件,這里略去  
  60. this.Controls.Add ( button1 ) ;  
  61. this.Controls.Add ( textBox1 ) ;  
  62. this.Controls.Add ( label1 ) ;  
  63. this.Controls.Add ( button2 ) ;  
  64. this.Controls.Add ( ListBox1 ) ;  
  65. this.MaximizeBox = false ;  
  66. this.MinimizeBox = false ;  
  67. this.Name = "Form1" ;  
  68. this.Text = "C#的網(wǎng)絡編程服務器端!" ;  
  69. this.Closed += new System.EventHandler ( this.Form1_Closed ) ;  
  70. this.ResumeLayout ( false ) ;  
  71. }  
  72. private void Listen ( )  
  73. {  
  74. //C#網(wǎng)絡編程服務器端程序  
  75. //創(chuàng)建一個tcpListener對象,此對象主要是對給定端口進行偵聽  
  76. tcpListener = new TcpListener ( 1234 ) ;  
  77. //開始偵聽  
  78. tcpListener.Start ( ) ;  
  79. //返回可以用以處理連接的Socket實例  
  80. socketForClient = tcpListener.AcceptSocket ( ) ;  
  81. try 
  82. {  
  83. //如果返回值是"true",則產(chǎn)生的套節(jié)字已經(jīng)接受來自遠方的連接請求  
  84. if ( socketForClient.Connected )  
  85. {  
  86. ListBox1.Items.Add ( "已經(jīng)和客戶端成功連接!" ) ;  
  87. while ( true )  
  88. {  
  89. //創(chuàng)建networkStream對象通過網(wǎng)絡套節(jié)字來接受和發(fā)送數(shù)據(jù)  
  90. networkStream = new NetworkStream ( socketForClient ) ;  
  91. //從當前數(shù)據(jù)流中讀取一行字符,返回值是字符串  
  92. streamReader = new StreamReader ( networkStream ) ;  
  93. string msg = streamReader.ReadLine ( ) ;  
  94. ListBox1.Items.Add ( "收到客戶端信息:" + msg ) ;  
  95. streamWriter = new StreamWriter ( networkStream ) ;  
  96. if ( textBox1.Text != "" )  
  97. {  
  98. ListBox1.Items.Add ( "往客戶端反饋信息:" +   
  99. textBox1.Text ) ;  
  100. //往當前的數(shù)據(jù)流中寫入一行字符串  
  101. streamWriter.WriteLine ( textBox1.Text ) ;  
  102. //刷新當前數(shù)據(jù)流中的數(shù)據(jù)  
  103. //C#網(wǎng)絡編程服務器端程序  
  104. streamWriter.Flush ( ) ;  
  105. }  
  106. }  
  107. }  
  108. }  
  109. catch ( Exception ey )  
  110. {  
  111. MessageBox.Show ( ey.ToString ( ) ) ;  
  112. }  
  113. }  
  114. static void Main ( )  
  115. {  
  116. Application.Run ( new Form1 ( ) ) ;  
  117. }  
  118. private void button1_Click ( object sender ,  
  119.  System.EventArgs e )  
  120. {  
  121. ListBox1.Items .Add ( "服務已經(jīng)啟動!" ) ;  
  122. _thread1 = new Thread ( new ThreadStart ( Listen ) ) ;  
  123. _thread1.Start ( ) ;  
  124. }  
  125. private void button2_Click ( object sender ,  
  126.  System.EventArgs e )  
  127. {  
  128. //C#網(wǎng)絡編程服務器端程序  
  129. //關(guān)閉線程和流  
  130. networkStream.Close ( ) ;  
  131. streamReader.Close ( ) ;  
  132. streamWriter.Close ( ) ;  
  133. _thread1.Abort ( ) ;  
  134. tcpListener.Stop ( ) ;  
  135. socketForClient.Shutdown ( SocketShutdown.Both ) ;  
  136. socketForClient.Close ( ) ;  
  137. }  
  138. private void Form1_Closed ( object sender ,  
  139.  System.EventArgs e )  
  140. {  
  141. //C#網(wǎng)絡編程服務器端程序  
  142. //關(guān)閉線程和流  
  143. networkStream.Close ( ) ;  
  144. streamReader.Close ( ) ;  
  145. streamWriter.Close ( ) ;  
  146. _thread1.Abort ( ) ;  
  147. tcpListener.Stop ( ) ;  
  148. socketForClient.Shutdown ( SocketShutdown.Both ) ;  
  149. socketForClient.Close ( ) ;  
  150. }  

C#網(wǎng)絡編程服務器端程序的實現(xiàn)源碼就向你介紹到這里,希望對你了解和學習C#網(wǎng)絡編程服務器端程序有所幫助。

【編輯推薦】

  1. C#客戶端程序?qū)崿F(xiàn)同步傳輸字符串淺析
  2. ASP.NET異步回調(diào)淺析
  3. ASP.NET異步回調(diào)開發(fā)實例淺析
  4. C#網(wǎng)絡編程入門基礎(chǔ)知識淺析
  5. C#網(wǎng)絡編程服務器端程序設計淺析

當前文章:C#網(wǎng)絡編程服務器端程序?qū)崿F(xiàn)源碼淺析
標題URL:http://www.dlmjj.cn/article/djggeij.html