最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.net socket客戶端實例代碼分享

 更新時間:2013年12月03日 10:25:45   作者:  
這篇文章主要介紹了.net寫的socket客戶端,下面有使用方法,大家參考使用吧

客戶端代碼

復制代碼 代碼如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Net;

using System.Threading;

using System.Net.Sockets;

 

namespace W.Common

{

    public class CacheSocket

    {

        public Socket skClient;

        public string ip = string.Empty;

        public int port = -1;

        public int netID;

        // public int timeSleep = 1;

 

        //每次接收發(fā)送的臨時信息

        private byte[] sendData;//發(fā)送的信息

        private byte[] receiveData = new byte[1024];//接收信息

        private int receiveN;

        private bool isErr = false;

        //--------

 

        public CacheSocket(int pNetID)

        {

            this.netID = pNetID;

            GetConfig();

            Connection();

            Cmd("netid:" + this.netID);

        }

 

        public CacheSocket(int pNetID, string pIP, int pPort)

        {

            this.ip = pIP;

            this.port = pPort;

            Connection();

            Cmd("netid:" + pNetID);

        }

 

        public string Cmd(string key)

        {

            lock (this)//一個信息發(fā)送后再接收為一次完成過程

            {

                this.sendData = Encoding.UTF8.GetBytes(key);

 

                try

                {

                    this.skClient.Send(this.sendData);

                }

                catch (Exception ex)

                {

                    isErr = true;

                    ("Send" + ex.Message).WriteLine();

                    ReSocket(() => { this.skClient.Send(this.sendData); });

                }

 

                try

                {

                    this.receiveN = this.skClient.Receive(this.receiveData);

                }

                catch (Exception ex)

                {

                    isErr = true;

                    ReSocket(() => { this.receiveN = this.skClient.Receive(this.receiveData); });

                    ("Receive" + ex.Message).WriteLine();

                }

 

                return Encoding.UTF8.GetString(this.receiveData, 0, this.receiveN);

            }

        }

 

        public delegate void ReSocket_D();

        private void ReSocket(ReSocket_D d)

        {

            if (isErr)

            {

                Connection();

 

                this.sendData = Encoding.UTF8.GetBytes("netid:" + this.netID);

                this.skClient.Send(this.sendData);

 

                this.receiveN = this.skClient.Receive(this.receiveData);

                if (Encoding.UTF8.GetString(this.receiveData, 0, this.receiveN) != "1")

                {

 

                }

 

                d();

                this.isErr = false;

            }

        }

 

        #region 獲取IP和端口

        private void GetConfig()

        {

            this.ip = "127.0.0.1";   

            this.port = 1234;

        }

        #endregion

 

        #region 連接套接字

        private void Connection()

        {

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

            IPEndPoint ie = new IPEndPoint(IPAddress.Parse(this.ip), this.port);//服務(wù)器的IP和端口

            skClient.Connect(ie);

 

            byte[] data = new byte[7];

            this.receiveN = this.skClient.Receive(data);

 

            string s = Encoding.UTF8.GetString(data, 0, this.receiveN);

            if (s != "success")

            {

                throw new Exception("連接不成功" + s);

            }

        }

        #endregion

    }

}

使用方法

復制代碼 代碼如下:

 public static readonly CacheSocket cac=new CacheSocket(2);

 cac.Cmd("發(fā)送內(nèi)容");
 

相關(guān)文章

  • ASP.NET對大文件上傳的解決方案

    ASP.NET對大文件上傳的解決方案

    在ASP.NET 開發(fā)的過程中,最大的問題就在于上傳大文件時讓開發(fā)者尤為的頭疼,而且,上傳時無法方便的做到多線程的操控和上傳進度的顯示。筆者在此給大家推薦一款簡單易用的上傳組件,從而快速便捷得解決了 ASP.NET 中的大文件上傳問題
    2015-08-08
  • Asp.net cookie的處理流程深入分析

    Asp.net cookie的處理流程深入分析

    一說到Cookie我想大家都應(yīng)該知道它是一個保存在客戶端,當瀏覽器請求一個url時,瀏覽器會攜帶相關(guān)的Cookie達到服務(wù)器端,需要的朋友可以了解下
    2012-12-12
  • WPF項目在設(shè)計界面調(diào)用后臺代碼

    WPF項目在設(shè)計界面調(diào)用后臺代碼

    這篇文章介紹了WPF項目在設(shè)計界面調(diào)用后臺代碼的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 通過.net core調(diào)用so文件的方法

    通過.net core調(diào)用so文件的方法

    工作中需要在linux上監(jiān)控系統(tǒng)空閑時間,但是沒有找到C#代碼,只找到C的代碼,所以準備將C文件編譯為so然后用P/invoke調(diào)用,這篇文章主要介紹了如何通過.net core調(diào)用so文件,需要的朋友可以參考下
    2023-08-08
  • asp.net顯示頁面執(zhí)行時間

    asp.net顯示頁面執(zhí)行時間

    Global.asax需要添加的代碼。利用我們了解當前頁面的運行效率。
    2009-03-03
  • ajaxpro.dll 控件實現(xiàn)異步刷新頁面

    ajaxpro.dll 控件實現(xiàn)異步刷新頁面

    用ajaxpro.dll控件實現(xiàn)異步刷新頁面的代碼,需要的朋友可以參考下。
    2009-11-11
  • ASP.net(c#)用類的思想實現(xiàn)插入數(shù)據(jù)到ACCESS例子

    ASP.net(c#)用類的思想實現(xiàn)插入數(shù)據(jù)到ACCESS例子

    ASP.net(c#)用類的思想實現(xiàn)插入數(shù)據(jù)到ACCESS例子...
    2007-07-07
  • C#元組類型ValueTuple用法詳解

    C#元組類型ValueTuple用法詳解

    本文詳細講解了C#元組類型ValueTuple的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • 如何在ASP.NET Core類庫項目中讀取配置文件詳解

    如何在ASP.NET Core類庫項目中讀取配置文件詳解

    這篇文章主要給大家介紹了關(guān)于如何在ASP.NET Core類庫項目中讀取配置文件的相關(guān)資料,這是朋友提的一個問題,文中通過示例代碼介紹的非常詳解,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-10-10
  • 垃圾代碼二三行 ASPX小馬

    垃圾代碼二三行 ASPX小馬

    垃圾代碼二三行 ASPX小馬...
    2007-12-12

最新評論

漳平市| 高要市| 资溪县| 牡丹江市| 常山县| 厦门市| 讷河市| 南投县| 南投县| 罗定市| 普定县| 灌南县| 沛县| 弥渡县| 密云县| 安阳市| 环江| 班玛县| 观塘区| 信阳市| 徐州市| 无棣县| 高邑县| 舟曲县| 塘沽区| 南康市| 高安市| 阳城县| 潼南县| 丰都县| 衡水市| 山阴县| 冷水江市| 四子王旗| 宿州市| 介休市| 新安县| 吕梁市| 桐柏县| 衡阳市| 德昌县|