• VncSharpU 客户端dll源码

    GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changin

    0
    242
    158KB
    2020-10-11
    44
  • c#vnc客户端源码

    VncSharp -------- VncSharp is a Free and Open Source (GPL) implementation of the VNC Remote Framebuffer (RFB) Protocol for the .NET Framework. VNC (Virtual Network Computing) is a cross-platform client/server protocol allowing remote systems to be controlled over a network. VNC was originally devel

    1
    1315
    73KB
    2020-10-11
    50
  • Vnc c#版源码

    Vnc c#版源码 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document,

    0
    889
    199KB
    2020-10-11
    49
  • vb.net C#线程锁超时控制代码

    ManualResetEvent是一个超时等待的线程锁,如果超时返回false,接收指令显示true,但是没法实现在超时后让他继续等待,这种需求我们可以用在以下场景: 控制线程超时方法 1.[主线程]:请求方发送请求,立即创建超时等待线程锁 2.[异步线程]:接收数据,数据包合并,数据包合并完成后向解锁主线程 3,[主线程]:超时则进入超时异常,接到异步线程的通知则进入后续业务 我们在使用时会发现,第二步可能是一个时间长短很难预估的范围,例如你可能是获取一个数据库(1秒),也可能是获取一个6GB文件(10分钟),他们需要等待的时间是完全不一样。那么主线程的等待时间怎么设置都是不合理的. 我们的需要是:第二步接收一次,就告知主线程一次(我接收了数据,请把等待重置一下吧),很遗憾,ManualResetEvent不具有此功能。

    0
    263
    68KB
    2020-06-01
    38
  • c#写的rsa类 解密加密 js密码RSA 的密钥产生

    这个类是关于加密,解密的操作,文件的一些高级操作 1.RSACryption RSA 的密钥产生 2.RSACryption RSA的加密函数 3.RSACryption RSA的解密函数 4.RSACryption 获取Hash描述表 5.RSACryption RSA签名 6.RSACryption RSA签名认证 / <summary> /// RSA加密解密及RSA签名和验证 /// </summary> public class RSACryption { public RSACryption() { } #region RSA 加密解密 #region RSA 的密钥产生 /// <summary> /// RSA 的密钥产生 产生私钥 和公钥 /// </summary> /// <param name="xmlKeys"></param> /// <param name="xmlPublicKey"></param> public void RSAKey(out string xmlKeys,out string xmlPublicKey) { System.Security.Cryptography.

    0
    290
    2KB
    2020-02-05
    44
  • ZTE F660 固件升级

    ZTE F660_H248_V2.30.10P14T7_UPGRADE_BOOTLDR.zip 升级固件 很好用的直接可以在线升级http://192.168.1.1/getpage.gch?pid=1001&logout=1&hidden=upgrade 输入这个地址才能出现升级功能 管理账号telecomadmin密码nE7jA%5m

    0
    469
    11.77MB
    2020-01-22
    31
  • 中兴F660 v3 中英文双语 固件升级

    F660 V3版固件,升级好管理地址 :192.168.100.1 用户名密码admin 国外网站扒过来的好像是白俄罗斯的,中英文固件,默认英文。固件里面除了loid外还需要PON账号密码的那种光猫可尝试刷,我这边移动光猫就是这样的。当然,只要是V3版的哪种估计都通刷,需要哪种刷哪种,只不过20P的这种固件只找到此一份,此固件没有桥接模式不能wds,无线可以选全球各国功率貌似也可调。固件日期2013.05.16,

    5
    938
    10.25MB
    2020-01-22
    50
  • 语音聊天源码 用tcp与udp网络传输

    语音聊天源码 namespace VoiceChat.Model { // Подтверждения public enum Flags { Accept, BeginVideoSend, EndVideoSend } // Состояния модели public enum ModelStates { WaitCall, OutgoingCall, IncomingCall, Talk, Close } public class VoiceChatModel : INotifyPropertyChanged { private const int LINES_COUNT = 2; public AudioSharing audio; public VideoSharing video; public BdtpClient bdtpClient; private Thread waitCall; public bool Connected { get { return bdtpClient.Connected; } } public IPAddress RemoteIP { get { return remoteIP; } set { remoteIP = value; OnPropertyChanged("RemoteIP"); } } private IPAddress remoteIP; public IPAddress LocalIP { get { return bdtpClient.LocalIP; } } // Текущее состояние public ModelStates State { get { return state; } set { state = value; OnPropertyChanged("State"); mediaSounds.ControlSounds(); } } private ModelStates state; public CallTimer callTimer; private MediaSounds mediaSounds; public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string PropertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName)); } public VoiceChatModel() { bdtpClient = new BdtpClient(GetLocalIP(), LINES_COUNT); audio = new AudioSharing(this); video = new VideoSharing(this); mediaSounds = new MediaSounds(this); callTimer = new CallTimer(); InitializeEvents(); BeginWaitCall(); } // Инициализация private void InitializeEvents() { bdtpClient.ReceiptReceived += ReceiveAccept; bdtpClient.ReceiptReceived += ReceiveDisconnect; bdtpClient.ReceiptReceived += video.ReceiveFlags; } private IPAddress GetLocalIP() { IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName()); return addresses.Where(x => x.AddressFamily == AddressFamily.InterNetwork).Last(); } // Обработчики приема подтверждений public static bool IsFlag(Flags flag, byte[] buffer) { return buffer.Length == 1 && buffer[0] == (byte)flag; } private void ReceiveAccept(byte[] buffer) { if (IsFlag(Flags.Accept, buffer)) { State = ModelStates.Talk; } } private void ReceiveDisconnect(byte[] buffer) { if (buffer.Length == 0) { EndCall(); } } // Исходящий вызов public void BeginCall() { State = ModelStates.OutgoingCall; EndWaitCall();

    0
    404
    722KB
    2020-01-11
    21
  • 语音聊天源码 用tcp与udp网络传输

    语音聊天源码 namespace VoiceChat.Model { // Подтверждения public enum Flags { Accept, BeginVideoSend, EndVideoSend } // Состояния модели public enum ModelStates { WaitCall, OutgoingCall, IncomingCall, Talk, Close } public class VoiceChatModel : INotifyPropertyChanged { private const int LINES_COUNT = 2; public AudioSharing audio; public VideoSharing video; public BdtpClient bdtpClient; private Thread waitCall; public bool Connected { get { return bdtpClient.Connected; } } public IPAddress RemoteIP { get { return remoteIP; } set { remoteIP = value; OnPropertyChanged("RemoteIP"); } } private IPAddress remoteIP; public IPAddress LocalIP { get { return bdtpClient.LocalIP; } } // Текущее состояние public ModelStates State { get { return state; } set { state = value; OnPropertyChanged("State"); mediaSounds.ControlSounds(); } } private ModelStates state; public CallTimer callTimer; private MediaSounds mediaSounds; public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string PropertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName)); } public VoiceChatModel() { bdtpClient = new BdtpClient(GetLocalIP(), LINES_COUNT); audio = new AudioSharing(this); video = new VideoSharing(this); mediaSounds = new MediaSounds(this); callTimer = new CallTimer(); InitializeEvents(); BeginWaitCall(); } // Инициализация private void InitializeEvents() { bdtpClient.ReceiptReceived += ReceiveAccept; bdtpClient.ReceiptReceived += ReceiveDisconnect; bdtpClient.ReceiptReceived += video.ReceiveFlags; } private IPAddress GetLocalIP() { IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName()); return addresses.Where(x => x.AddressFamily == AddressFamily.InterNetwork).Last(); } // Обработчики приема подтверждений public static bool IsFlag(Flags flag, byte[] buffer) { return buffer.Length == 1 && buffer[0] == (byte)flag; } private void ReceiveAccept(byte[] buffer) { if (IsFlag(Flags.Accept, buffer)) { State = ModelStates.Talk; } } private void ReceiveDisconnect(byte[] buffer) { if (buffer.Length == 0) { EndCall(); } } // Исходящий вызов public void BeginCall() { State = ModelStates.OutgoingCall; EndWaitCall();

    0
    93
    10.38MB
    2020-01-11
    13
  • UDPNAT-UDP穿越NAT,UDP打洞,UDP

    UDP穿越NAT,UDP打洞,UDP Hole Punching 本程序分为客户端和服务端,服务端需要放在一台公用的外网服务器上,客户端运行前需要修改ip.ini文件的外网服务器信息。 Licenses /// <summary> /// 聊天消息 /// </summary> [Serializable] public class P2P_TalkMessage : P2P_MessageBase { private readonly string message; public P2P_TalkMessage(string msg) { message = msg; } public string Message { get { return message; } } } /// <summary> /// UDP打洞测试消息 /// </summary> [Serializable] public class P2P_HolePunchingTestMessage : P2P_MessageBase { private readonly string _UserName; public P2P_HolePunchingTestMessage(string userName) { _UserName = userName; } public string UserName { get { return _UserName; } } }

    0
    112
    35KB
    2020-01-11
    16
  • 分享宗师

    成功上传21个资源即可获取
关注 私信
上传资源赚积分or赚钱