前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BS1051-基于C#+udp协议实现局域网内即时通信程序

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

作者头像
计算机程序优异哥
发布2022-12-05 10:25:48
4690
发布2022-12-05 10:25:48
举报
文章被收录于专栏:毕设程序汇总

基于udp的局域网内即时通信程序,系统利用UDP协议编写相应的程序实现局域网内部的即时通讯功能,其主要工作机制模仿互联网即时通讯产品的功能,采用UDP协议分别为客户端及服务端完成基础数据配置实现网络消息的相互传递。

系统主要开发平台为window系统,程序设计语言为C#,运行环境为vscode。程序通过开发测试,运行,完成了最初的设计目标,可以用于好友之间通讯

原文地址

一、程序设计

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

主要功能模块:局域网通讯,大众聊天室,用户登录,表情发送,语音发送等等

主要包含技术:UDP协议,C#,vscode

主要包含算法:数据分析计算等

二、效果实现

系统效果

在这里插入图片描述
在这里插入图片描述

其他效果省略

核心代码

public class UdpServer

代码语言:txt
复制
{
代码语言:txt
复制
    public event RecevieMessageHandler RecevieMessage;
代码语言:txt
复制
    UdpStatus status = UdpStatus.Close;
代码语言:txt
复制
    IPAddress listenIp;
代码语言:txt
复制
    int listenPort;
代码语言:txt
复制
    UdpClient udpClient;
代码语言:txt
复制
    IPEndPoint remotePoint;
代码语言:txt
复制
    bool work = true;
代码语言:txt
复制
    public UdpServer(IPAddress hostIp, int hostPort)
代码语言:txt
复制
    {
代码语言:txt
复制
        listenIp = hostIp;
代码语言:txt
复制
        listenPort = hostPort;
代码语言:txt
复制
        udpClient = new UdpClient(new IPEndPoint(listenIp, listenPort));
代码语言:txt
复制
    }
代码语言:txt
复制
    public void Start()
代码语言:txt
复制
    {
代码语言:txt
复制
        if (work)
代码语言:txt
复制
        {
代码语言:txt
复制
            status = UdpStatus.Open;
代码语言:txt
复制
            udpClient.BeginReceive(ReceiveCallback, udpClient);
代码语言:txt
复制
        }
代码语言:txt
复制
    }
代码语言:txt
复制
    private void ReceiveCallback(IAsyncResult ar)
代码语言:txt
复制
    {
代码语言:txt
复制
        var client = ar.AsyncState as UdpClient;
代码语言:txt
复制
        try
代码语言:txt
复制
        {
代码语言:txt
复制
            byte[] data = client.EndReceive(ar, ref remotePoint);
代码语言:txt
复制
            MessageEventArg e = new MessageEventArg();
代码语言:txt
复制
            e.message = new Message();
代码语言:txt
复制
            e.message.Deserialize(data);
代码语言:txt
复制
            e.requestIp = remotePoint.Address.ToString();
代码语言:txt
复制
            e.requestPort = remotePoint.Port;
代码语言:txt
复制
            if (RecevieMessage != null)
代码语言:txt
复制
            {
代码语言:txt
复制
                RecevieMessage(this, e);
代码语言:txt
复制
            }
代码语言:txt
复制
        }
代码语言:txt
复制
        catch (Exception)
代码语言:txt
复制
        {
代码语言:txt
复制
            Stop();
代码语言:txt
复制
        }
代码语言:txt
复制
        Start();
代码语言:txt
复制
    }
代码语言:txt
复制
    public void Stop()
代码语言:txt
复制
    {
代码语言:txt
复制
        work = false;
代码语言:txt
复制
        udpClient.Close();
代码语言:txt
复制
        status = UdpStatus.Close;
代码语言:txt
复制
    }
代码语言:txt
复制
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、程序设计
  • 二、效果实现
    • 系统效果
    • 核心代码
    相关产品与服务
    即时通信 IM
    即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持 Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、好友与资料、消息漫游、群组管理、会话管理、直播弹幕、内容审核和推送等能力。适用于直播互动、电商带货、客服咨询、社交沟通、企业办公、互动游戏、医疗健康等场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档