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

C#以太網(wǎng)Sockets服務(wù)器設(shè)計(jì)實(shí)現(xiàn)

 更新時(shí)間:2023年02月06日 14:21:40   作者:cfqq1989  
本文主要介紹了C#以太網(wǎng)Sockets服務(wù)器設(shè)計(jì)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

【1】引用命名空間:

//System.Net.Sockets
using System.Net.Sockets; // 以太網(wǎng)對(duì)象
?
// 字段位置
private Socket socket業(yè)務(wù); ?//對(duì)象既可以當(dāng)服務(wù)器,又可以當(dāng)客戶端
TcpListener tcpListener; ? //服務(wù)器對(duì)象
TcpClient tcpClient; ? ? ? //客戶端對(duì)象

 Socket 構(gòu)造函數(shù):

public Socket(SocketInformation 套接字結(jié)構(gòu)體);
public Socket(SocketType 插座類型, ProtocolType 協(xié)議類型);
public Socket(AddressFamily 工作組, SocketType 插座類型, ProtocolType 協(xié)議類型);

參數(shù)介紹:

AddressFamily.InterNetwork=2    用 IPv4
 public enum AddressFamily
        {
            Unknown = -1,       //未知的地址族。
            Unspecified = 0,    //未指定的地址族。
            Unix = 1,           //Unix 本地到主機(jī)地址。
            InterNetwork = 2,   //IP 版本 4 的地址。
            ImpLink = 3,        //ARPANET IMP 地址。
            Pup = 4,            //PUP 協(xié)議的地址。
            Chaos = 5,          //MIT CHAOS 協(xié)議的地址。
            NS = 6,             //IPX 或 SPX 地址。
            Ipx = 6,            //Xerox NS 協(xié)議的地址。
            Iso = 7,            //ISO 協(xié)議的地址。
            Osi = 7,            //OSI 協(xié)議的地址。
            Ecma = 8,           //歐洲計(jì)算機(jī)制造商協(xié)會(huì) (ECMA) 地址。
            DataKit = 9,        //Datakit 協(xié)議的地址。
            Ccitt = 10,         //CCITT 協(xié)議(如 X.25)的地址。
            Sna = 11,           //IBM SNA 地址。
            DecNet = 12,        //DECnet 地址。
            DataLink = 13,      //直接數(shù)據(jù)鏈接接口地址。
            Lat = 14,           //LAT 地址。
            HyperChannel = 0xF, //NSC Hyperchannel 地址。
            AppleTalk = 0x10,   //AppleTalk 地址。蘋果
            NetBios = 17,       //NetBios 地址。
            VoiceView = 18,     //VoiceView 地址。
            FireFox = 19,       //FireFox 地址。
            Banyan = 21,        //Banyan 地址。
            Atm = 22,           //本機(jī) ATM 服務(wù)地址。
            InterNetworkV6 = 23,//IP 版本 6 的地址。
            Cluster = 24,       //Microsoft 群集產(chǎn)品的地址。
            Ieee12844 = 25,     //IEEE 1284.4 工作組地址。
            Irda = 26,          //IrDA 地址。
            NetworkDesigners = 28,//支持網(wǎng)絡(luò)設(shè)計(jì)器 OSI 網(wǎng)關(guān)的協(xié)議的地址。
            Max = 29            //MAX 地址。
        }

 SocketType.Stream

public enum SocketType
    {
        Stream = 1,// Tcp  InterNetwork 地址族 //支持可靠、雙向
        Dgram = 2, // Udp  InterNetwork 地址族。
        Raw = 3,
        Rdm = 4,
        Seqpacket = 5,
        Unknown = -1//指定未知的 Socket 類型。
    }

ProtocolType.Tcp

public enum ProtocolType
    {
        IP = 0,
        IPv6HopByHopOptions = 0,
        Icmp = 1,
        Igmp = 2,
        Ggp = 3,
        IPv4 = 4,
        Tcp = 6,
        Pup = 12,
        Udp = 17,
        Idp = 22,
        IPv6 = 41,
        IPv6RoutingHeader = 43,
        IPv6FragmentHeader = 44,
        IPSecEncapsulatingSecurityPayload = 50,
        IPSecAuthenticationHeader = 51,
        IcmpV6 = 58,
        IPv6NoNextHeader = 59,
        IPv6DestinationOptions = 60,
        ND = 77,
        Raw = 0xFF,
        Unspecified = 0,
        Ipx = 1000,
        Spx = 1256,
        SpxII = 1257,
        Unknown = -1
    }

【2】字段: 聲明對(duì)象

//聲明一個(gè)Socket對(duì)象
private Socket socketSever服務(wù)器; // 【1】Socket
 
// 工作組,套接字類型,協(xié)議類型
socketSever服務(wù)器 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

【3】初始化:參數(shù)

//設(shè)置 服務(wù)器ip
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("192.168.0.7"), int.Parse(12345));
            try
            {
                socketSever服務(wù)器.Bind(ipe);// 【2】Bind 綁定本地ip
            }
            catch (Exception ex)
            {
                //寫入日志
               MessageBox.Show("服務(wù)器開(kāi)啟失?。?+ex.Message);
                return;
            }
// 調(diào)用listen()函數(shù)監(jiān)聽(tīng),業(yè)務(wù)窗口(同時(shí)辦理業(yè)務(wù)窗口數(shù))// 同時(shí)占線數(shù)量
socketSever服務(wù)器.Listen(10);// 【3】Listen
 
Task.Run(new Action(() => //開(kāi)線程,使主線程能退到ui層
         {
             客戶登錄業(yè)務(wù)(); // 【4】Accpet
         }));
 
按鈕_啟動(dòng)服務(wù).Enabled = false;
private void 客戶登錄業(yè)務(wù)()
        {
            while (true)
            {
                //等待客戶
                Socket socketClient客戶 = socketSever服務(wù)器.Accept();// 【4】Accpet
 
 
                //客戶來(lái)了
                string client客戶IP地址 = socketClient客戶.RemoteEndPoint.ToString();
 
                客戶電話簿.Add(client客戶IP地址, socketClient客戶);
 
                占線刷新(client客戶IP地址, true);
 
                Task.Run(new Action(() => //第2隊(duì)線程
                {
                   Receive客戶經(jīng)理(socketClient客戶);
                }));
            }
        }
private void Receive客戶經(jīng)理(Socket socketClient)
        {
            while (true)
            {
                // 創(chuàng)建一個(gè)緩沖區(qū)
                byte[] buffer = new byte[1024 * 1024 * 10];
                int length = -1;
 
                // 客戶ip
                string client = socketClient.RemoteEndPoint.ToString();
 
 
                // 等待客戶發(fā)言
                try
                {
                    length = socketClient.Receive(buffer);
                }
                catch (Exception)
                {
                  // 下線了
                    占線刷新(client, false);
                    客戶電話簿.Remove(client);
                    break;
                }
 
                if (length > 0)
                {// 委托呼叫
                   wt(client,Encoding.UFT8.GetString(buffer,0,length));
                     
                }
                else
                {
                 // 下線了
                    占線刷新(client, false);
                    客戶電話簿.Remove(client);
                    break;
                }
            }
        }

使用以太網(wǎng)

注意:對(duì)象不包含0個(gè)參數(shù)

到此這篇關(guān)于C#以太網(wǎng)Sockets服務(wù)器設(shè)計(jì)實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C#以太網(wǎng)Sockets服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中對(duì)字符串進(jìn)行壓縮和解壓的實(shí)現(xiàn)

    C#中對(duì)字符串進(jìn)行壓縮和解壓的實(shí)現(xiàn)

    本文主要介紹了C#中對(duì)字符串進(jìn)行壓縮和解壓的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C#使用DropDownList綁定添加新數(shù)據(jù)的方法匯總

    C#使用DropDownList綁定添加新數(shù)據(jù)的方法匯總

    這篇文章主要介紹了C#使用DropDownList綁定添加新數(shù)據(jù)的方法匯總的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • C# OCR實(shí)現(xiàn)文字識(shí)別功能

    C# OCR實(shí)現(xiàn)文字識(shí)別功能

    OCR,中文叫做光學(xué)字符識(shí)別。它是利用光學(xué)技術(shù)和計(jì)算機(jī)技術(shù)把印在或?qū)懺诩埳系奈淖肿x取出來(lái),并轉(zhuǎn)換成一種計(jì)算機(jī)能夠接受、人又可以理解的格式。本文將利用OCR實(shí)現(xiàn)文字識(shí)別功能,感興趣的可以了解一下
    2022-11-11
  • C#關(guān)于Task.Yeild()函數(shù)的討論

    C#關(guān)于Task.Yeild()函數(shù)的討論

    這篇文章主要介紹了C#中關(guān)于Task.Yeild()函數(shù)的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#Winform窗口移動(dòng)方法

    C#Winform窗口移動(dòng)方法

    今天小編就為大家分享一篇C#Winform窗口移動(dòng)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • C#?winform實(shí)現(xiàn)中英文切換功能的四種方式

    C#?winform實(shí)現(xiàn)中英文切換功能的四種方式

    這篇文章主要介紹了在C#?winform應(yīng)用程序中實(shí)現(xiàn)中英文切換功能的四種方式,資源文件(Resources),本地化(Localization),動(dòng)態(tài)設(shè)置控件字體和切換語(yǔ)言環(huán)境這四種方式,下面將詳細(xì)介紹每種方式及其具體實(shí)現(xiàn),并討論它們的優(yōu)缺點(diǎn),需要的朋友可以參考下
    2024-04-04
  • Unity的IPostprocessBuild實(shí)用案例深入解析

    Unity的IPostprocessBuild實(shí)用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostprocessBuild實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • C#實(shí)現(xiàn)的調(diào)用DOS命令操作類實(shí)例

    C#實(shí)現(xiàn)的調(diào)用DOS命令操作類實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的調(diào)用DOS命令操作類,實(shí)例分析了C#調(diào)用系統(tǒng)常用DOS命令的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • c#調(diào)用c++的DLL的實(shí)現(xiàn)方法

    c#調(diào)用c++的DLL的實(shí)現(xiàn)方法

    本文主要介紹了c#調(diào)用c++的DLL的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • c#(Socket)同步套接字代碼示例

    c#(Socket)同步套接字代碼示例

    c#(Socket)同步套接字代碼示例...
    2007-03-03

最新評(píng)論

鱼台县| 吉木萨尔县| 三河市| 汝城县| 台湾省| 阿克陶县| 承德县| 阿荣旗| 青铜峡市| 皋兰县| 体育| 万山特区| 元谋县| 青神县| 秭归县| 洛宁县| 利川市| 定州市| 军事| 应城市| 阿尔山市| 调兵山市| 闻喜县| 嘉禾县| 宣武区| 黄平县| 保靖县| 金寨县| 岚皋县| 武宁县| 西乡县| 婺源县| 大化| 肇东市| 淅川县| 通州区| 辽阳市| 靖安县| 海原县| 运城市| 上饶县|