亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

c# socket編程udp客戶端實(shí)現(xiàn)代碼分享

 更新時(shí)間:2013年12月09日 10:27:29   作者:  
這篇文章主要介紹了c# socket編程實(shí)現(xiàn)udp客戶端,大家參考使用吧
復(fù)制代碼 代碼如下:

Console.WriteLine("This is a Client, host name is {0}", Dns.GetHostName());
//設(shè)置服務(wù)端終結(jié)點(diǎn)
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8001);
//創(chuàng)建與服務(wù)端連接的套接字,指定網(wǎng)絡(luò)類型,數(shù)據(jù)連接類型和網(wǎng)絡(luò)協(xié)議
Socket ConnSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
string welcome = "Client Message:Hello!!!";
byte[] data = new byte[1024];
data = Encoding.ASCII.GetBytes(welcome);
//給服務(wù)端發(fā)送測(cè)試消息
ConnSocket.SendTo(data, data.Length, SocketFlags.None, ipe);
IPEndPoint server = new IPEndPoint(IPAddress.Any, 0);
//服務(wù)端終結(jié)點(diǎn)
EndPoint Remote = (EndPoint)server;
data = new byte[1024];
//對(duì)于不存在的IP地址,加入此行代碼后,可以在指定時(shí)間內(nèi)解除阻塞模式限制
//server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 100);
int recv = ConnSocket.ReceiveFrom(data, ref Remote);
//打印從服務(wù)端發(fā)回的信息
Console.WriteLine("Message received from {0}: ", Remote.ToString());
Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
while (true) //可以實(shí)時(shí)給服務(wù)端發(fā)送消息
{
    string input = Console.ReadLine();
    if (input == "exit") //中斷連接
    {
        ConnSocket.SendTo(Encoding.ASCII.GetBytes(input), Remote);
        data = new byte[1024];
        recv = ConnSocket.ReceiveFrom(data, ref Remote);
        Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
        break;
    }
    else
    {
        ConnSocket.SendTo(Encoding.ASCII.GetBytes("Client Message:" + input), Remote);
        data = new byte[1024];
        recv = ConnSocket.ReceiveFrom(data, ref Remote);
        Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
    }
}
Console.WriteLine("Stopping Client.");
ConnSocket.Close();

相關(guān)文章

  • 關(guān)于C#中使用Oracle存儲(chǔ)過程返回結(jié)果集的問題

    關(guān)于C#中使用Oracle存儲(chǔ)過程返回結(jié)果集的問題

    Oracle中可以使用游標(biāo)(Cursor)對(duì)數(shù)據(jù)集進(jìn)行操作,但在存儲(chǔ)過程輸出參數(shù)中直接使用Cursor錯(cuò)誤,下面小編給大家?guī)砹薈#中使用Oracle存儲(chǔ)過程返回結(jié)果集的問題,感興趣的朋友一起看看吧
    2021-10-10
  • Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿

    Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿

    這篇文章主要為大家詳細(xì)介紹了Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c#讀寫注冊(cè)表示例分享

    c#讀寫注冊(cè)表示例分享

    這篇文章主要介紹了c#讀寫注冊(cè)表示例,示例中有詳細(xì)注釋,大家參考使用吧
    2014-01-01
  • C#序列化與反序列化實(shí)例

    C#序列化與反序列化實(shí)例

    這篇文章主要介紹了C#序列化與反序列化的實(shí)現(xiàn)方法,實(shí)例分析了序列化與反序列化的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-01-01
  • 操作XML文檔遇到的XMLNS問題及解決方法 (C# 和 PHP)

    操作XML文檔遇到的XMLNS問題及解決方法 (C# 和 PHP)

    不管是用 PHP 還是 C#, 在操作 XML 的時(shí)候我們除了一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)去取值之外, 還有一個(gè)非常方便的表達(dá)式, 就是 XPATH
    2011-05-05
  • 在C#使用字典存儲(chǔ)事件示例及實(shí)現(xiàn)自定義事件訪問器

    在C#使用字典存儲(chǔ)事件示例及實(shí)現(xiàn)自定義事件訪問器

    這篇文章主要介紹了在C#使用字典存儲(chǔ)事件示例及實(shí)現(xiàn)自定義事件訪問器的方法,是C#事件編程中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-02-02
  • WPF換膚設(shè)計(jì)原理淺析

    WPF換膚設(shè)計(jì)原理淺析

    這篇文章主要為大家詳細(xì)介紹了WPF換膚設(shè)計(jì)原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 淺談C#中堆和棧的區(qū)別(附上圖解)

    淺談C#中堆和棧的區(qū)別(附上圖解)

    C#中棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小
    2014-09-09
  • C#約瑟夫問題解決方法

    C#約瑟夫問題解決方法

    這篇文章主要介紹了C#約瑟夫問題解決方法,較為詳細(xì)的分析了約瑟夫問題及C#解決技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • VS2012 未找到與約束ContractName匹配的導(dǎo)出

    VS2012 未找到與約束ContractName匹配的導(dǎo)出

    這篇文章主要介紹了在更新的windows補(bǔ)丁后,Visual Studio 用戶可能無法打開或創(chuàng)建 C++ 或 JavaScript 文件或項(xiàng)目,小編的解決辦法,希望可以幫助到大家
    2018-04-04

最新評(píng)論