JavaShuo
欄目
標籤
C# 創建UDP服務器並接收客戶端數據
時間 2019-11-13
標籤
c#
創建
udp
服務器
接收
客戶端
數據
欄目
C#
简体版
原文
原文鏈接
C# 創建UDP服務器並接收客戶端數據
2015-02-11 17:20
1218人閱讀
評論
(0)
收藏
舉報
分類:
C#開發技術(22)
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
服務器
服務器端對象類庫:
post
[csharp]
view plain
copy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Threading;
using System.IO;
namespace UdpChatExample
{
/// <summary>
/// UDP服務器對象
/// </summary>
public
class UDPServerClass
{
public
delegate
void MessageHandler(
string Message);
//定義委託事件
public
event MessageHandler MessageArrived;
public UDPServerClass()
{
//獲取本機可用IP地址
IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ipa
in ips)
{
if (ipa.AddressFamily == AddressFamily.InterNetwork)
{
MyIPAddress = ipa;
//獲取本地IP地址
break;
}
}
Note_StringBuilder =
new StringBuilder();
PortName = 8080;
}
public UdpClient ReceiveUdpClient;
/// <summary>
/// 偵聽端口名稱
/// </summary>
public
int PortName;
/// <summary>
/// 本地地址
/// </summary>
public IPEndPoint LocalIPEndPoint;
/// <summary>
/// 日誌記錄
/// </summary>
public StringBuilder Note_StringBuilder;
/// <summary>
/// 本地IP地址
/// </summary>
public IPAddress MyIPAddress;
public
void Thread_Listen()
{
//建立一個線程接收遠程主機發來的信息
Thread myThread =
new Thread(ReceiveData);
myThread.IsBackground =
true;
myThread.Start();
}
/// <summary>
/// 接收數據
/// </summary>
private
void ReceiveData()
{
IPEndPoint local =
new IPEndPoint(MyIPAddress, PortName);
ReceiveUdpClient =
new UdpClient(local);
IPEndPoint remote =
new IPEndPoint(IPAddress.Any, 0);
while (
true)
{
try
{
//關閉udpClient 時此句會產生異常
byte[] receiveBytes = ReceiveUdpClient.Receive(
ref remote);
string receiveMessage = Encoding.Default.GetString(receiveBytes, 0, receiveBytes.Length);
// receiveMessage = ASCIIEncoding.ASCII.GetString(receiveBytes, 0, receiveBytes.Length);
MessageArrived(
string.Format(
"{0}來自{1}:{2}", DateTime.Now.ToString(), remote, receiveMessage));
//try
//{
// Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
// ReceiveUdpClient.Send(sendBytes, sendBytes.Length, local);
//}
//catch (Exception e)
//{
//}
//break;
}
catch
{
break;
}
}
}
/// <summary>
/// 添加日誌信息到Note_StringBuilder
/// </summary>
public
void AddMessage_Note_StringBuilder()
{
}
}
}
界面簡單代碼:
ui
[csharp]
view plain
copy
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UdpChatExample
{
public partial
class UDPServerForm : Form
{
public UDPServerForm()
{
InitializeComponent();
}
public
delegate
void DelegateChangeText(
string Messages);
void ChangeTxt(
string Messages)
{
string SBText = SB.ToString();
SB.Remove(0, SB.Length);
SB.Append(Messages +
"\r\n" + SBText);
richTextBox1.Text = SB.ToString();
}
StringBuilder SB =
new StringBuilder();
private
void UDPServerForm_Load(
object sender, EventArgs e)
{
}
UDPServerClass UDPServerClass1;
private
void button1_Click(
object sender, EventArgs e)
{
UDPServerClass1 =
new UDPServerClass();
UDPServerClass1.Thread_Listen();
UDPServerClass1.MessageArrived +=
new UDPServerClass.MessageHandler(UDPServerClass1_MessageArrived);
}
void UDPServerClass1_MessageArrived(
string Message)
{
richTextBox1 .Invoke (
new DelegateChangeText(ChangeTxt),Message);
}
private
void UDPServerForm_FormClosing(
object sender, FormClosingEventArgs e)
{
System.Environment.Exit(System.Environment.ExitCode);
}
}
}
相關文章
1.
UDP服務器客戶端
2.
UDP 客戶端接收
3.
C#服務端接收客戶端POST過來的Json數據並解析
4.
Pythoh網絡編程4:創建UDP服務器和客戶端
5.
Java Socket 服務端發送數據 客戶端接收數據
6.
java 模擬多個客戶端與服務器創建UDP鏈接
7.
C#服務器客戶端
8.
客戶端與服務器端創建鏈接的過程
9.
C#編程 socket編程之udp服務器端和客戶端
10.
netty搭建socket服務端,接收客戶端數據,主動發送數據給客戶端
更多相關文章...
•
MySQL客戶端和服務器端工具集
-
MySQL教程
•
XSLT - 在客戶端
-
XSLT 教程
•
Spring Cloud 微服務實戰(三) - 服務註冊與發現
•
Flink 數據傳輸及反壓詳解
相關標籤/搜索
客戶服務
webService客戶端
客戶端
接收器
服務端
服務器
Linux服務器
雲服務器
服務器篇
c#udp
C#
C#教程
瀏覽器信息
SQLite教程
服務器
數據業務
C#
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
windows下配置opencv
2.
HED神經網
3.
win 10+ annaconda+opencv
4.
ORB-SLAM3系列-多地圖管理
5.
opencv報錯——(mtype == CV_8U || mtype == CV_8S)
6.
OpenCV計算機視覺學習(9)——圖像直方圖 & 直方圖均衡化
7.
【超詳細】深度學習原理與算法第1篇---前饋神經網絡,感知機,BP神經網絡
8.
Python數據預處理
9.
ArcGIS網絡概述
10.
數據清洗(三)------檢查數據邏輯錯誤
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
UDP服務器客戶端
2.
UDP 客戶端接收
3.
C#服務端接收客戶端POST過來的Json數據並解析
4.
Pythoh網絡編程4:創建UDP服務器和客戶端
5.
Java Socket 服務端發送數據 客戶端接收數據
6.
java 模擬多個客戶端與服務器創建UDP鏈接
7.
C#服務器客戶端
8.
客戶端與服務器端創建鏈接的過程
9.
C#編程 socket編程之udp服務器端和客戶端
10.
netty搭建socket服務端,接收客戶端數據,主動發送數據給客戶端
>>更多相關文章<<