程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 基於Socket客戶端實現

基於Socket客戶端實現

編輯:關於C#

打開VS2008,在D:C#ch17目錄下建立名為SocketClient的Windows應用程序。打開工程,往當前窗體中添加控件,如表17-7所示。

表17-7 添加控件列表

控件名 Name Text GroupBox groupBox1 向服務器發送消息 Label label1 發送消息: TextBox textBox1   Button button2 發送 ListBox lbInfo   GroupBox groupBox1 服務器回饋信息

客戶端的設計主要分為以下步驟。

(1)首先要做的工作還是要引用一些命名空間,如下所示。

using System.IO;

using System.Net.Sockets;

using System.Net;

然後定義一系列的全局變量,如下所示。

private Socket s; //定義Socket對象

public NetworkStream ns; //網絡流

public StreamReader sr; //流讀取

public StreamWriter sw; //流寫入

(2)雙擊“發送”按鈕,添加如下代碼。

s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

serverIP = IPAddress.Parse("222.18.142.171"); //服務器IP

try

{

s.Connect(serverIP, 13); //連接服務器,端口號用13

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

try

{

ns = new NetworkStream(s); //實例化網絡流

sr = new StreamReader(ns); //實例化流讀取對象

sw = new StreamWriter(ns); //實例化寫入流對象

sw.WriteLine(textBox1.Text); //將textBox1.Text的數據寫入流

sw.Flush(); //清理緩沖區

lbInfo.Items.Add(sr.ReadLine()); //將從流中讀取的數據寫入lbInfo

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); //捕獲異常

}

(3)最後,關閉Socket連接,釋放資源,可以直接在窗體的FormClosed事件中進行,如下所示。

s.Shutdown(SocketShutdown.Both);

s.Close();

至此,服務器和客戶端已經全部設計完畢,下面看運行效果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved