亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行C#網絡編程服務器端程序的實現源碼淺析

發布時間:2021-11-23 23:17:46 來源:億速云 閱讀:166 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何進行C#網絡編程服務器端程序的實現源碼淺析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

C#網絡編程服務器端程序實現源碼是怎么樣的呢?讓我們來看看其中重要的一部分:

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

//server.cs  using System ;  using System.Drawing ;  using System.Collections ;  using System.ComponentModel ;  using System.Windows.Forms ;  using System.Data ;  using System.Net.Sockets ;  using System.IO ;  using System.Threading ;  using System.Net ;  //C#網絡編程服務器端程序  //導入程序中使用到的名字空間  public class Form1 : Form  {  private ListBox ListBox1 ;  private Button button2 ;  private Label label1 ;  private TextBox textBox1 ;  private Button button1 ;  private Socket socketForClient ;  private NetworkStream networkStream ;  private TcpListener tcpListener ;  private StreamWriter streamWriter ;  private StreamReader streamReader ;  private Thread _thread1 ;  private System.ComponentModel.Container components = null ;  public Form1 ( )  {  InitializeComponent ( ) ;  }  //C#網絡編程服務器端程序  //清除程序中使用的各種資源  protected override void Dispose ( bool disposing )  {  if ( disposing )  {  if ( components != null )  {  components.Dispose ( ) ;  }  }  base.Dispose ( disposing ) ;  }  private void InitializeComponent ( )  {  label1 = new Label ( ) ;  button2 = new Button ( ) ;  button1 = new Button ( ) ;  ListBox1 = new ListBox ( ) ;  textBox1 = new TextBox ( ) ;  SuspendLayout ( ) ;  label1.Location = new Point ( 8 , 168 ) ;  label1.Name = "label1" ;  label1.Size = new Size ( 120 , 23 ) ;  label1.TabIndex = 3 ;  label1.Text = "往客戶端反饋信息:" ;  //C#網絡編程服務器端程序  //同樣的方式設置其他控件,這里略去  this.Controls.Add ( button1 ) ;  this.Controls.Add ( textBox1 ) ;  this.Controls.Add ( label1 ) ;  this.Controls.Add ( button2 ) ;  this.Controls.Add ( ListBox1 ) ;  this.MaximizeBox = false ;  this.MinimizeBox = false ;  this.Name = "Form1" ;  this.Text = "C#的網絡編程服務器端!" ;  this.Closed += new System.EventHandler ( this.Form1_Closed ) ;  this.ResumeLayout ( false ) ;  }  private void Listen ( )  {  //C#網絡編程服務器端程序  //創建一個tcpListener對象,此對象主要是對給定端口進行偵聽  tcpListener = new TcpListener ( 1234 ) ;  //開始偵聽  tcpListener.Start ( ) ;  //返回可以用以處理連接的Socket實例  socketForClient = tcpListener.AcceptSocket ( ) ;  try {  //如果返回值是"true",則產生的套節字已經接受來自遠方的連接請求  if ( socketForClient.Connected )  {  ListBox1.Items.Add ( "已經和客戶端成功連接!" ) ;  while ( true )  {  //創建networkStream對象通過網絡套節字來接受和發送數據  networkStream = new NetworkStream ( socketForClient ) ;  //從當前數據流中讀取一行字符,返回值是字符串  streamReader = new StreamReader ( networkStream ) ;  string msg = streamReader.ReadLine ( ) ;  ListBox1.Items.Add ( "收到客戶端信息:" + msg ) ;  streamWriter = new StreamWriter ( networkStream ) ;  if ( textBox1.Text != "" )  {  ListBox1.Items.Add ( "往客戶端反饋信息:" +   textBox1.Text ) ;  //往當前的數據流中寫入一行字符串  streamWriter.WriteLine ( textBox1.Text ) ;  //刷新當前數據流中的數據  //C#網絡編程服務器端程序  streamWriter.Flush ( ) ;  }  }  }  }  catch ( Exception ey )  {  MessageBox.Show ( ey.ToString ( ) ) ;  }  }  static void Main ( )  {  Application.Run ( new Form1 ( ) ) ;  }  private void button1_Click ( object sender ,   System.EventArgs e )  {  ListBox1.Items .Add ( "服務已經啟動!" ) ;  _thread1 = new Thread ( new ThreadStart ( Listen ) ) ;  _thread1.Start ( ) ;  }  private void button2_Click ( object sender ,   System.EventArgs e )  {  //C#網絡編程服務器端程序  //關閉線程和流  networkStream.Close ( ) ;  streamReader.Close ( ) ;  streamWriter.Close ( ) ;  _thread1.Abort ( ) ;  tcpListener.Stop ( ) ;  socketForClient.Shutdown ( SocketShutdown.Both ) ;  socketForClient.Close ( ) ;  }  private void Form1_Closed ( object sender ,   System.EventArgs e )  {  //C#網絡編程服務器端程序  //關閉線程和流  networkStream.Close ( ) ;  streamReader.Close ( ) ;  streamWriter.Close ( ) ;  _thread1.Abort ( ) ;  tcpListener.Stop ( ) ;  socketForClient.Shutdown ( SocketShutdown.Both ) ;  socketForClient.Close ( ) ;  }  }

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

上述內容就是如何進行C#網絡編程服務器端程序的實現源碼淺析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淄博市| 平遥县| 阿拉善盟| 尼木县| 竹北市| 铜梁县| 湟源县| 清徐县| 济南市| 汝南县| 兴安县| 南汇区| 瑞安市| 河东区| 洛浦县| 丽江市| 郑州市| 普兰店市| 车致| 辉县市| 兴隆县| 萝北县| 东至县| 永州市| 饶平县| 葵青区| 临洮县| 昆明市| 贡嘎县| 兴业县| 河南省| 多伦县| 朝阳区| 武穴市| 枝江市| 喀喇沁旗| 泽库县| 嘉鱼县| 故城县| 简阳市| 兴国县|