真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何進行C#網(wǎng)絡(luò)編程服務(wù)器端程序的實現(xiàn)源碼淺析

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

創(chuàng)新互聯(lián)公司主營徐聞網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),徐聞h5小程序定制開發(fā)搭建,徐聞網(wǎng)站營銷推廣歡迎徐聞等地區(qū)企業(yè)咨詢

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

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

//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#網(wǎng)絡(luò)編程服務(wù)器端程序  //導(dǎo)入程序中使用到的名字空間  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#網(wǎng)絡(luò)編程服務(wù)器端程序  //清除程序中使用的各種資源  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#網(wǎng)絡(luò)編程服務(wù)器端程序  //同樣的方式設(shè)置其他控件,這里略去  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#的網(wǎng)絡(luò)編程服務(wù)器端!" ;  this.Closed += new System.EventHandler ( this.Form1_Closed ) ;  this.ResumeLayout ( false ) ;  }  private void Listen ( )  {  //C#網(wǎng)絡(luò)編程服務(wù)器端程序  //創(chuàng)建一個tcpListener對象,此對象主要是對給定端口進行偵聽  tcpListener = new TcpListener ( 1234 ) ;  //開始偵聽  tcpListener.Start ( ) ;  //返回可以用以處理連接的Socket實例  socketForClient = tcpListener.AcceptSocket ( ) ;  try {  //如果返回值是"true",則產(chǎn)生的套節(jié)字已經(jīng)接受來自遠方的連接請求  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ù)  //C#網(wǎng)絡(luò)編程服務(wù)器端程序  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 ( "服務(wù)已經(jīng)啟動!" ) ;  _thread1 = new Thread ( new ThreadStart ( Listen ) ) ;  _thread1.Start ( ) ;  }  private void button2_Click ( object sender ,   System.EventArgs e )  {  //C#網(wǎng)絡(luò)編程服務(wù)器端程序  //關(guān)閉線程和流  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#網(wǎng)絡(luò)編程服務(wù)器端程序  //關(guān)閉線程和流  networkStream.Close ( ) ;  streamReader.Close ( ) ;  streamWriter.Close ( ) ;  _thread1.Abort ( ) ;  tcpListener.Stop ( ) ;  socketForClient.Shutdown ( SocketShutdown.Both ) ;  socketForClient.Close ( ) ;  }  }

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

上述內(nèi)容就是如何進行C#網(wǎng)絡(luò)編程服務(wù)器端程序的實現(xiàn)源碼淺析,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享標題:如何進行C#網(wǎng)絡(luò)編程服務(wù)器端程序的實現(xiàn)源碼淺析
標題網(wǎng)址:http://weahome.cn/article/jsjoej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部