亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C# > 正文

C#利用服務(wù)器實(shí)現(xiàn)客戶端之間通信

2024-09-07 17:05:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在分布式調(diào)度系統(tǒng)中,要實(shí)現(xiàn)調(diào)度服務(wù)器與多個(gè)計(jì)算節(jié)點(diǎn)服務(wù)器之間的通信,socket是一種實(shí)現(xiàn)方法,下面,就跟錯(cuò)新技術(shù)頻道小編一起去學(xué)C#利用服務(wù)器實(shí)現(xiàn)客戶端之間通信吧!

首先在服務(wù)端新建一個(gè)serverSocket,對(duì)其進(jìn)行初始化(一般包含AddressFamily:IP地址類(lèi)型,SocketType:Socket傳輸數(shù)據(jù)方式,ProtoType:傳輸協(xié)議);?

接著我們要設(shè)置server端要綁定的IP:port;然后開(kāi)始監(jiān)聽(tīng),并設(shè)置最多同時(shí)監(jiān)聽(tīng)多少個(gè)Client.

這時(shí),服務(wù)端就在等待狀態(tài),直到某一個(gè)Client連接到這個(gè)ip:port上,這時(shí)serverSocket.Accept()工作,獲得這個(gè)連接。(此時(shí)的連接是有地址信息的哦!記得保存)?

獲得連接之后,server就可以和這個(gè)Client進(jìn)行通信了,當(dāng)加入第二個(gè)Client(我們稱(chēng)其為ClientB)時(shí),Server接收到ClientB的消息,可以將這個(gè)消息轉(zhuǎn)發(fā)給前一個(gè)Client(我們稱(chēng)其為ClientA),當(dāng)受到ClientA的消息,也可以轉(zhuǎn)發(fā)給ClientB。這樣就實(shí)現(xiàn)了Clients之間的通信了。(重點(diǎn)在保存連接信息?。。?/p>

那么現(xiàn)在貼上代碼講解:

Server端代碼?

?

namespace SocketServer{  class Program  {    private static byte[] result = new byte[1024];       static Socket serverSocket;    private static string client;    private static Socket clientSocket;    //我這里存了兩個(gè)Client,因?yàn)樽约弘娔X開(kāi)了兩個(gè)Client,不會(huì)有多的    //理論上應(yīng)該開(kāi)一個(gè)Socket[]來(lái)保存信息,最好用一個(gè)二元組將client的信息和連接綁定起來(lái)    //這樣就可以實(shí)現(xiàn)斷開(kāi)連接后下次登陸還是可以識(shí)別是這個(gè)Client    private static Socket clientSocketA=null;    private static Socket clientSocketB=null;        static void Main(string[] args)    {      Program.SetPort(8885);    }    private static void SetPort(int port)    {      IPAddress ip = IPAddress.Parse("127.0.0.1");//set ip      serverSocket = new Socket(AddressFamily.InterNetwork,        SocketType.Stream, ProtocolType.Tcp);//initialize      serverSocket.Bind(new IPEndPoint(ip, port));//bind      serverSocket.Listen(10);      //進(jìn)入監(jiān)聽(tīng)狀態(tài)      Console.WriteLine("監(jiān)聽(tīng){0}成功", serverSocket.LocalEndPoint.ToString());      //開(kāi)啟一個(gè)線程來(lái)監(jiān)聽(tīng)客戶端連接      Thread myThread = new Thread(ListenClientConnect);      myThread.Start();      Console.ReadLine();    }    /// <summary>    /// 監(jiān)聽(tīng)客戶端連接    /// </summary>    private static void ListenClientConnect()    {      while (true)      {        //Client連接上后 得到這個(gè)連接        clientSocket = serverSocket.Accept();        //這里我因?yàn)橹挥袃蓚€(gè)Client,所以就簡(jiǎn)單寫(xiě)了        if (clientSocketA == null)        {          clientSocketA = clientSocket;        }        else if (clientSocketB == null)        {          clientSocketB = clientSocket;        }        else        {          //當(dāng)其中一個(gè)斷開(kāi)了,又重新連接時(shí),需要再次保存連接          if (clientSocketB.IsBound)          {            clientSocketA = clientSocketB;            clientSocketB = clientSocket;          }          else          {            clientSocketB = clientSocketA;            clientSocketA = clientSocket;          }                  }        clientSocket.Send(Encoding.ASCII.GetBytes("say hello"));        //開(kāi)個(gè)線程接收Client信息        Thread receivedThread = new Thread(ReceiveMessage);        receivedThread.Start(clientSocket);      }    }       private static void ReceiveMessage(object clientSocket)    {      Socket myClientSocket = (Socket) clientSocket;            while (true)      {        try        {          int revceiveNumber = myClientSocket.Receive(result);          //Console.WriteLine("接受客戶端{(lán)0}消息{1}", myClientSocket.RemoteEndPoint.ToString()          //  , Encoding.ASCII.GetString(result, 0, revceiveNumber));          Console.WriteLine(Encoding.ASCII.GetString(result, 0, revceiveNumber));          if (myClientSocket == clientSocketA)          {            Console.WriteLine("receive from A");            if (clientSocketB!=null&&clientSocketB.IsBound)            {              Console.WriteLine("a IS BOUND");              clientSocketB.Send(result, 0, revceiveNumber, SocketFlags.None);            }            else            {              myClientSocket.Send(Encoding.ASCII.GetBytes("the people is not online! Send Failed!"));              Console.WriteLine("對(duì)方不在線上,發(fā)送失??!");            }          }          else          {            Console.WriteLine("receive from B");            if (clientSocketA != null && clientSocketA.IsBound)            {              Console.WriteLine("a IS BOUND");              clientSocketA.Send(result, 0, revceiveNumber, SocketFlags.None);            }              else            {              myClientSocket.Send(Encoding.ASCII.GetBytes("the people is not online! Send Failed!"));              Console.WriteLine("對(duì)方不在線上,發(fā)送失敗!");            }          }                  }        catch(Exception ex)        {          Console.WriteLine(ex.Message);          myClientSocket.Shutdown(SocketShutdown.Both);          myClientSocket.Close();          break;        }      }    }  }}

Client端代碼(因?yàn)槎疾畈欢?就只貼一個(gè)了)?

?

namespace SocketClient{  class Program  {    private static byte[] result = new byte[1024];    private static Socket clientSocket;    private static void ListenServer()    {      while (true)      {        result = new byte[1024];        int receiveLength = clientSocket.Receive(result);                Console.WriteLine("{0}", Encoding.ASCII.GetString(result, 0, receiveLength));      }          }    static void Main(string[] args)    {      IPAddress ip = IPAddress.Parse("127.0.0.1");      clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);      try      {        clientSocket.Connect(ip, 8885);        Console.WriteLine("連接成功!");      }      catch (Exception e)      {        Console.WriteLine("連接失敗!");        return;      }      Thread threadRead = new Thread(ListenServer);      threadRead.Start();           while(true)      {        try        {          Thread.Sleep(1000);          string sendMessage = Console.ReadLine();          clientSocket.Send(Encoding.ASCII.GetBytes("Sylvia:"+sendMessage));                  }        catch (Exception ex)        {          clientSocket.Shutdown(SocketShutdown.Both);          clientSocket.Close();          break;        }      }      Console.WriteLine("發(fā)送完畢 按回車(chē)退出");      Console.ReadKey();    }  }}

寫(xiě)的時(shí)候要特別注意一下Send信息的時(shí)候,注意byte[]的傳輸大小,很容易變成byte[]數(shù)組的大小而不是內(nèi)容的大小。?

這個(gè)大家就自己嘗試吧。

以上就是錯(cuò)新技術(shù)頻道小編帶給大家的C#利用服務(wù)器實(shí)現(xiàn)客戶端之間通信,程序員可以收藏起來(lái),做到有備無(wú)患。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91国语精品自产拍在线观看性色| 欧美精品videofree1080p| 中文字幕在线播放网址| 久久人人爽人人爽人人片av免费| 中文字幕久热精品视频在线| 成人在线观看毛片| 日日欢夜夜爽一区| 亚洲午夜国产成人av电影男同| 国产精品理论片在线观看| 国产成人av免费在线观看| 国产69精品久久久久孕妇| 91精品国产高清自在线| 欧美成人777| av漫画在线观看| gogo久久| 日韩一二三区视频| 国产一区二区三区在线观看免费| 日韩伦理片在线观看| 精品国产免费一区二区三区香蕉| 日韩成人av电影| 在线观看黄色| 99精品国产九九国产精品| 美女不穿衣服的网站| 91资源在线视频| 成人手机在线| 精品乱码一区二区三区四区| 久久久精品一品道一区| 久久无码av三级| 欧美一级片免费看| 高清av不卡| 日本天堂一区| 国产精品一区二区免费不卡| 芒果视频成人app| 欧美亚洲韩国| 亚洲精品国产一区二区三区四区在线| 97视频在线免费| 国产拍欧美日韩视频二区| 色婷婷激情久久| 亚洲国产精品精华液网站| 午夜婷婷在线观看| 蜜桃福利入口| 91久久精品www人人做人人爽| 色综合中文字幕| 九热这里只有精品| 日韩av二区在线播放| 亚洲精品一区二区网址| 日韩免费高清视频| 亚洲三级影院| 日韩在线播放一区二区| 国产男男gay体育生网站| 亚洲天堂男人av| 欧美成人三级在线播放| 国产激情片在线观看| 特级毛片在线观看| 欧美久久精品午夜青青大伊人| 电影一区中文字幕| 日韩电视剧免费观看网站| 天堂成人免费av电影一区| 国精品无码人妻一区二区三区| 久久av资源站| av一区二区久久| 欧美日韩一级在线| 一区二区黄色片| 国产网站麻豆精品视频| 波多野结衣一二区| 日韩一区亚洲二区| 波多野结衣家庭主妇| 亚洲视频一二三四| 不卡的电视剧免费网站有什么| 婷婷久久综合九色综合99蜜桃| 亚洲综合色婷婷| 男人的天堂亚洲| 精品亚洲一区二区三区四区五区| 国产1区2区3区精品美女| 日韩电影中文字幕在线观看| 欧美美女被草| 欧美v在线观看| 天天免费亚洲黑人免费| 日本一区二区三级电影在线观看| 国产亚洲综合色| 美女精品一区二区| 亚洲精品自产拍在线观看| 亚洲欧洲久久| 国产精品久久777777毛茸茸| 亚洲在线一区| 婷婷激情图片久久| 国模私拍国内精品国内av| 国内精品一区视频| 成人日日夜夜| 色一情一乱一伦一区二区三欧美| 第三区美女视频在线| 日韩电影免费观看在| 亚洲国产欧美日本视频| 免费成人av| 日韩一级裸体免费视频| 国产成人亚洲综合a∨婷婷图片| 素人一区二区三区| 中文字幕在线播放视频| 中文字幕欧美日本乱码一线二线| 久草在.com| 久久这里精品国产99丫e6| 日本三级中国三级99人妇网站| 国产精品国产三级国产试看| 日韩黄色三级视频| 唐朝av高清盛宴| 天天av天天翘天天综合网色鬼国产| 天天爽天天爽夜夜爽| 国产一区二区三区不卡av| 亚洲精品之草原avav久久| 亚洲精品一区二区三区中文字幕| 日本黄色一级视频| 欧美亚洲国产一区二区三区va| 美女福利一区二区| 亚洲人吸女人奶水| 奇米影视第四色777| 成人的网站免费观看| 男人的天堂在线播放| 高清在线不卡av| 一级特黄妇女高潮| 久久精品99国产精品酒店日本| 人人爽人人爽人人片| 青春草在线视频| 亚洲人一区二区| 神马久久影院| 一区二区三区四区精品| 日韩黄色av| 国产成人免费观看视频| 亚洲欧美中文日韩在线v日本| 久久久久久久久久久久久久久久久| 日韩成人在线一区| 这里只有视频精品| 美女黄色成人网| 欧美一区永久视频免费观看| 夜夜嗨aⅴ免费视频| 欧美羞羞免费网站| 欧美一区二区视频在线观看2022| 国产精品福利网站| 五月婷婷免费视频| 欧美性受xxxxxx黑人xyx性爽| 亚洲国产一区二区三区| 欧美日韩高清在线观看| 国产一区二区三区在线视频| 91蝌蚪视频在线观看| 成人欧美一区二区三区视频网页| 日韩影视一区二区三区| 日韩精品一区二区三区中文不卡| 久久国产色av免费观看| 伊人天天久久大香线蕉av色| 很黄很黄的网站免费的| 六月激情综合网| 在线观影网站| 亚洲国产精品suv| 九色成人搞黄网站| 国产精品免费久久久久| 福利电影一区二区| 国产网站麻豆精品视频| 影音先锋欧美资源| 欧美女人性生活视频| 国产美女视频91| 国产亚洲美州欧州综合国| 欧美在线激情网| 51久久精品夜色国产麻豆| 一区二区亚洲欧洲国产日韩| 91啪九色porn原创视频在线观看| 91精品国产99久久久久久| 高清在线观看免费韩剧| 亚洲第一页综合| а天堂中文在线官网| 欧美大片一区| 日韩一区二区三区四区在线| 人人澡人人爽人人揉| 999精品免费视频| 性欧美ⅴideo另类hd| 91传媒免费看| 精产国产伦理一二三区| 欧美日韩三级在线观看| 97影视在线观看| 久久久精品视频网站| 欧美男同性恋视频网站| 婷婷综合激情| 3344国产永久在线观看视频| 婷婷五月色综合香五月| 91视频国产资源| 国产精品久久久久久久久借妻| 欧美一级淫片aaaaaaa视频| 亚洲精品18p| 日本免费网站| 8x国产一区二区三区精品推荐| 麻豆91在线播放免费| 国产精品久久久久一区二区国产| 亚洲免费成人在线| 久久99精品久久久久久水蜜桃| 欧美午夜精品理论片| 亚洲成精国产精品女| www.超碰97.com| 热re66久久精品国产99re| 成人毛片av在线| 成人一区在线观看| 日韩精品久久一区| 九九热视频在线免费观看| 免费在线观看h| 91福利精品视频| 欧产日产国产精品视频| 欧美一区2区视频在线观看| 日韩欧美视频专区| 美女视频一区二区三区在线| 99re这里只有| 午夜三级在线观看| 青青艹视频在线| 久久中文字幕av一区二区不卡| 国产探花一区| 久久久久久三级| 人九九综合九九宗合| 蜜桃视频在线观看网站| 性感美女极品91精品| 午夜羞羞小视频在线观看| 中文字幕在线观看网址| 丝袜美腿小色网| 亚洲视频观看| 中文字幕在线看视频国产欧美| 人妻在线日韩免费视频| 成人免费毛片嘿嘿连载视频…| 欧美日韩国产经典色站一区二区三区| 美女色狠狠久久| 456亚洲影院| 欧美a极品极品欧美| 日本特级黄色大片| 亚洲熟女乱综合一区二区| 欧美日本另类xxx乱大交| 91久久久精品国产| 亚洲午夜精品一区 二区 三区| 韩国黄色一级大片| 噜噜噜久久亚洲精品国产品麻豆| 欧美一级二级视频| 国产精品毛片va一区二区三区| 欧美a级理论片| 欧美性极品少妇| 青青草免费观看免费视频在线| 日韩欧美在线一区| 免费的一级黄色片| 污污网站免费看| 久久婷婷一区二区| 日本www在线| 久久精品一区二区三区资源网| 国产小视频免费在线网址| 国产91在线播放精品| 中文字幕一区二区三区四区久久| 中文字幕中文在线| 一级理论片在线观看| 99久久99久久精品国产片果冻| 欧美午夜精品电影| www.亚洲欧美| 欧美日本黄色| 爱草tv视频在线观看992| 成人精品小视频| 亚洲综合图片| 国产黄色的视频| 日韩第一页在线观看| 91国内精品野花午夜精品| 毛片网站免费| 欧美日韩福利在线观看| 国产精品一级在线| 男人晚上看的视频| 丁香视频免费观看| 国产成人在线视频网站| 日韩国产大片| 白丝女仆被免费网站| 啪啪av大全导航福利综合导航| 欧美又大粗又爽又黄大片视频| 91超碰在线| 成年网站在线| 亚洲性xxxx| 福利片一区二区三区| 日韩美女免费视频| 亚洲国产欧美在线人成| 国产suv精品一区二区883| 韩国av在线播放| 国产精品97在线| 日本丰满少妇黄大片在线观看| 女人在下体塞跳蛋在线观看| 欧美黄色免费视频| 国产91对白刺激露脸在线观看| 女同毛片一区二区三区| 国产成人精品视频在线| 狼狼综合久久久久综合网| 欧美午夜精品一区二区蜜桃| 欧美福利精品| 成人久久视频在线观看| 人妻内射一区二区在线视频| 色一情一乱一伦一视频免费看| 久久久久无码国产精品| 国产亚洲精品aa午夜观看| xxxx日本免费| 国产欧美精品一区aⅴ影院| 丰满少妇又爽又紧又丰满电影| 性色av免费观看| 手机免费观看av| 免费看日产一区二区三区| 日韩在线观看成人| 久久天天躁狠狠躁老女人| 亚洲国产91精品在线观看| 亚洲激情校园春色| 欧美一级做a爰片免费视频| 欧美日韩激情视频一区二区三区| 色噜噜一区二区| 亚洲同性gay激情无套| 综合中文字幕亚洲| 欧美视频在线观看一区二区| 成年人影院在线观看| 你懂的免费视频| 2019中文字幕全在线观看| 91麻豆国产在线观看| 亚洲国产精品日韩| 亚洲国产精品99| a篇片在线观看网站| 在线免费日韩av| 久久久久9999亚洲精品| 丰满少妇乱子伦精品看片| 国产精品中文在线| 香蕉久久精品日日躁夜夜躁| 久久99久久久久久久久久久| 久久精品无码一区二区三区毛片| 97精品国产97久久久久久免费| 一区二区不卡久久精品| 蜜桃在线一区二区| 欧美日韩一区二区三区四区| 亚洲一区二区三区乱码| 天天夜夜人人|