c# socket編程udp客戶端實現(xiàn)代碼分享
更新時間:2013年12月09日 10:27:29 作者:
這篇文章主要介紹了c# socket編程實現(xiàn)udp客戶端,大家參考使用吧
復制代碼 代碼如下:
Console.WriteLine("This is a Client, host name is {0}", Dns.GetHostName());
//設(shè)置服務(wù)端終結(jié)點
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ā)送測試消息
ConnSocket.SendTo(data, data.Length, SocketFlags.None, ipe);
IPEndPoint server = new IPEndPoint(IPAddress.Any, 0);
//服務(wù)端終結(jié)點
EndPoint Remote = (EndPoint)server;
data = new byte[1024];
//對于不存在的IP地址,加入此行代碼后,可以在指定時間內(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) //可以實時給服務(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存儲過程返回結(jié)果集的問題
Oracle中可以使用游標(Cursor)對數(shù)據(jù)集進行操作,但在存儲過程輸出參數(shù)中直接使用Cursor錯誤,下面小編給大家?guī)砹薈#中使用Oracle存儲過程返回結(jié)果集的問題,感興趣的朋友一起看看吧2021-10-10操作XML文檔遇到的XMLNS問題及解決方法 (C# 和 PHP)
不管是用 PHP 還是 C#, 在操作 XML 的時候我們除了一個節(jié)點一個節(jié)點去取值之外, 還有一個非常方便的表達式, 就是 XPATH2011-05-05在C#使用字典存儲事件示例及實現(xiàn)自定義事件訪問器
這篇文章主要介紹了在C#使用字典存儲事件示例及實現(xiàn)自定義事件訪問器的方法,是C#事件編程中的基礎(chǔ)知識,需要的朋友可以參考下2016-02-02VS2012 未找到與約束ContractName匹配的導出
這篇文章主要介紹了在更新的windows補丁后,Visual Studio 用戶可能無法打開或創(chuàng)建 C++ 或 JavaScript 文件或項目,小編的解決辦法,希望可以幫助到大家2018-04-04