我正在尝试使用 UDP 协议,但我不明白UDP Server和UDP Client之间的区别。他们不做同样的事情吗?
我编写的这段代码可以完美运行,但我担心每 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)
有人能帮我吗 ?
我正在使用 tcp 协议在 c# 中开发一个简单的文件和文件夹传输程序。
我用来传输文件的方法是将它分成小块。这些片段中的每一个都将用 Base64 编码并插入到更复杂的 JSON 消息中,然后将其发送到另一端。因此,由于 Base64,每条消息都将始终采用文本形式。
我对网络没有太多经验,我决定做出这个选择,因为在互联网上阅读,发送没有任何编码的字节流可能会冒着消息的某些部分可能被路由器或防火墙解释为命令的风险中断连接。
我的问题是我的软件也适用于非常大的文件(> 10GB)并且 base64 编码只会增加数据大小并使传输速度非常慢,因为 cpu 工作如此之多以连续编码/解码。
现在我想知道: