程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 實例解析SOCKET編程模型(-)

實例解析SOCKET編程模型(-)

編輯:關於JSP

Socket(套接字)是一種獨立於協議的網絡編程接口,在OSI模型中,主要集中於會話層和傳輸層。Socket 實際上代表的是兩個實體之間進行通信的有效端點。通過socket可以獲得源IP地址和源端口、終點IP地址和終點端口。用戶可以將多個socket連入同一個端口,以便對於單個端口可以有多個連接。通過socket客戶/服務器編程可以創建一個能被許多人使用的分布式程序,並且所有客戶均可以用統一的前端進行工作,並與服務器進行通信。這與老式或新式電話機之間的通話過程是十分相似的。
在.NET中,System.Net.Sockets 命名空間為需要嚴密控制網絡訪問的開發人員提供了 Windows Sockets (Winsock) 接口的托管實現。Socket 類為網絡通信提供了一套豐富的方法和屬性。
如果應用程序在執行期間只需要一個線程,請使用下面的方法,這些方法適用於同步操作模式。
如果當前使用的是面向連接的協議(如 TCP),則服務器可以使用 Listen 方法偵聽連接。Accept 方法處理任何傳入的連接請求,並返回可用於與遠程主機進行數據通信的 Socket。可以使用此返回的 Socket 來調用 Send 或 Receive 方法。如果要指定本地 IP 地址和端口號,請在調用 Listen 方法之前先調用 Bind 方法。如果不調用 Bind,基礎服務提供程序將為您分配這些值。此後,可以使用 LocalEndPoint 屬性來標識分配給 Socket 的 IP 地址和端口號。如果想連接到偵聽主機,請調用 Connect 方法。若要進行數據通信,請調用 Send 或 Receive 方法。
如果當前使用的是無連接協議(如 UDP),則根本不需要偵聽連接。調用 ReceiveFrom 方法可接受任何傳入的數據報。使用 SendTo 方法可將數據報發送到遠程主機。
開發一個簡單的同步網絡聊天程序程序分為服務器和客戶端。連接成功後,服務器和客戶端之間可以進行對話。源碼中對每一個涉及到的對初學者較難理解的類方法屬性都有詳細的注釋。以下是服務器端代碼。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
namespace 聊天_socket
{
/// <summary>
/// Form1 的摘要說明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{

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