小编Mar*_* DV的帖子

UDP服务器/UDP客户端之间的区别

我正在尝试使用 UDP 协议,但我不明白UDP ServerUDP Client之间的区别。他们不做同样的事情吗?

client udp server

5
推荐指数
2
解决办法
1万
查看次数

C# 如何检测互联网连接/断开(通过事件)?

我编写的这段代码可以完美运行,但我担心每 2 秒 ping 一次会消耗太多资源,或者可能会导致互联网连接出现一些问题。

        new Thread(() =>
        {
            if (CheckInternetConnection() == false)
            {
                Dispatcher.Invoke(new Action(delegate
                {
                    //internet access lost
                }));
            }
            else
            {
                Dispatcher.Invoke(new Action(delegate
                {
                    //internet access
                }));
            }

            Thread.Sleep(2000);
        }).Start();
Run Code Online (Sandbox Code Playgroud)
    [DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
    public static bool CheckInternetConnection()
    {
        int output = 0;
        return InternetGetConnectedState(out output, 0);
    }
Run Code Online (Sandbox Code Playgroud)

这两个事件并不是在所有场合都起作用(仅当IP或网卡发生变化时)

NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged
NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged;
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗 ?

c# networking events

5
推荐指数
1
解决办法
1万
查看次数

大文件的Base64?

我正在使用 tcp 协议在 c# 中开发一个简单的文件和文件夹传输程序。

我用来传输文件的方法是将它分成小块。这些片段中的每一个都将用 Base64 编码并插入到更复杂的 JSON 消息中,然后将其发送到另一端。因此,由于 Base64,每条消息都将始终采用文本形式。

我对网络没有太多经验,我决定做出这个选择,因为在互联网上阅读,发送没有任何编码的字节流可能会冒着消息的某些部分可能被路由器或防火墙解释为命令的风险中断连接。

我的问题是我的软件也适用于非常大的文件(> 10GB)并且 base64 编码只会增加数据大小并使传输速度非常慢,因为 cpu 工作如此之多以连续编码/解码。

现在我想知道:

  • 例如,发送一个仅以字节转换的简单文件,而没有先以任何格式进行编码,这是否真的存在对路由器或防火墙造成问题的风险?
  • 使用 Base64 进行大文件传输是否正确?
  • 有更好的选择吗?

c# base64 tcp

1
推荐指数
1
解决办法
2881
查看次数

标签 统计

c# ×2

base64 ×1

client ×1

events ×1

networking ×1

server ×1

tcp ×1

udp ×1