BS1051-基于C#+udp协议实现局域网内即时通信程序

基于udp的局域网内即时通信程序,系统利用UDP协议编写相应的程序实现局域网内部的即时通讯功能,其主要工作机制模仿互联网即时通讯产品的功能,采用UDP协议分别为客户端及服务端完成基础数据配置实现网络消息的相互传递。
系统主要开发平台为window系统,程序设计语言为C#,运行环境为vscode。程序通过开发测试,运行,完成了最初的设计目标,可以用于好友之间通讯

原文地址

一、程序设计

本次基于udp的局域网内即时通信程序,主要内容涉及:

主要功能模块:局域网通讯,大众聊天室,用户登录,表情发送,语音发送等等
主要包含技术:UDP协议,C#,vscode
主要包含算法:数据分析计算等

二、效果实现

系统效果

在这里插入图片描述

其他效果省略

核心代码

public class UdpServer
{
public event RecevieMessageHandler RecevieMessage;
UdpStatus status = UdpStatus.Close;
IPAddress listenIp;
int listenPort;
UdpClient udpClient;
IPEndPoint remotePoint;
bool work = true;

    public UdpServer(IPAddress hostIp, int hostPort)
    {
        listenIp = hostIp;
        listenPort = hostPort;
        udpClient = new UdpClient(new IPEndPoint(listenIp, listenPort));
    }

    public void Start()
    {
        if (work)
        {
            status = UdpStatus.Open;
            udpClient.BeginReceive(ReceiveCallback, udpClient);
        }
    }

    private void ReceiveCallback(IAsyncResult ar)
    {
        var client = ar.AsyncState as UdpClient;
        try
        {
            byte[] data = client.EndReceive(ar, ref remotePoint);
            MessageEventArg e = new MessageEventArg();
            e.message = new Message();
            e.message.Deserialize(data);
            e.requestIp = remotePoint.Address.ToString();
            e.requestPort = remotePoint.Port;

            if (RecevieMessage != null)
            {
                RecevieMessage(this, e);
            }
        }
        catch (Exception)
        {
            Stop();
        }
        Start();
    }

    public void Stop()
    {
        work = false;
        udpClient.Close();
        status = UdpStatus.Close;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值