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.
升级Gradle后报错Gradle‘s dependency cache may be corrupt (this sometimes occurs
2.
Smarter, Not Harder
3.
mac-2019-react-native 本地环境搭建(xcode-11.1和android studio3.5.2中Genymotion2.12.1 和VirtualBox-5.2.34 )
4.
查看文件中关键字前后几行的内容
5.
XXE萌新进阶全攻略
6.
Installation failed due to: ‘Connection refused: connect‘安卓studio端口占用
7.
zabbix5.0通过agent监控winserve12
8.
IT行业UI前景、潜力如何?
9.
Mac Swig 3.0.12 安装
10.
Windows上FreeRDP-WebConnect是一个开源HTML5代理,它提供对使用RDP的任何Windows服务器和工作站的Web访问
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
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服务端,接收客户端数据,主动发送数据给客户端
>>更多相关文章<<