/// <summary> /// 触发文件传输成功联接到服务器事件 /// </summary> protected virtual void OnTransmitConnected(ConnectedType connectedType) { if (TransmitConnected != null) { TransmitConnected(this, connectedType); } }
private void UpdateClientListControl() { if (InvokeRequired) { ConnectedType.BeginInvoke(new UpdateClientListCallback(UpdateClientList), null); } else { UpdateClientList(); } }
private void bResetPassword_Click(object sender, System.EventArgs e) { try { rtbResetPasswordResult.Text = ConnectedType.InvokeMember("ResetPassword", System.Reflection.BindingFlags.InvokeMethod, null, ConnectedClass, new object[] { rtbAdminUserName.Text, rtbResetUserName.Text }).ToString(); MessageBox.Show(this, "ResetPassword() completed successfully."); } catch (Exception exc) { MessageBox.Show(this, exc.ToString(), "Error calling ResetPassword()", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void bEstablishCredentials_Click(object sender, System.EventArgs e) { try { rtbEstablishCredentialsResult.Text = ConnectedType.InvokeMember("EstablishCredentials", System.Reflection.BindingFlags.InvokeMethod, null, ConnectedClass, new object[] { rtbEstablishCredentials.Text }).ToString(); MessageBox.Show(this, "EstablishCredentials() completed successfully."); } catch (Exception exc) { MessageBox.Show(this, exc.ToString(), "Error calling EstablishCredentials()", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void bCreateDocument2Run_Click(object sender, System.EventArgs e) { try { tCreateDocument2Result.Text = ConnectedType.InvokeMember("CreateDocument2", System.Reflection.BindingFlags.InvokeMethod, null, ConnectedClass, new object[] { tCreateDocument2Input.Text }).ToString(); MessageBox.Show(this, "CreateDocument2() completed successfully."); } catch (Exception exc) { MessageBox.Show(this, exc.ToString(), "Error calling CreateDocument2()", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void bIs_EditableRun_Click(object sender, System.EventArgs e) { try { rtResult2.Text = ConnectedType.InvokeMember("Is_Editable", System.Reflection.BindingFlags.InvokeMethod, null, ConnectedClass, new object[] { tExtension2.Text }).ToString(); MessageBox.Show(this, "Is_Editable() completed successfully."); } catch (Exception exc) { MessageBox.Show(this, exc.ToString(), "Error calling Is_Editable()", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void button1_Click(object sender, System.EventArgs e) { try { System.IO.BinaryReader br = new System.IO.BinaryReader(System.IO.File.OpenRead(tRenderFile.Text)); byte[] srcdata = br.ReadBytes((int)br.BaseStream.Length); br.Close(); Type[] types = new Type[5]; types[0] = typeof(byte[]); types[1] = typeof(string); types[2] = typeof(int); types[3] = typeof(int); types[4] = Type.GetType("System.String&"); object[] parm = new object[5]; parm[0] = srcdata; parm[1] = System.IO.Path.GetExtension(tRenderFile.Text); parm[2] = Int32.Parse(tRenderWidth.Text); parm[3] = Int32.Parse(tRenderHeight.Text); parm[4] = tRenderExtension.Text; System.Reflection.MethodInfo mi = ConnectedType.GetMethod("Render", types); byte[] bmpdata = (byte[])mi.Invoke(ConnectedClass, parm); System.IO.MemoryStream ms = new System.IO.MemoryStream(); ms.Write(bmpdata, 0, bmpdata.Length); ms.Position = 0; Image bmp = Bitmap.FromStream(ms); pRenderResult.Image = bmp; pRenderResult.Width = bmp.Width; pRenderResult.Height = bmp.Height; tRenderExtension.Text = (string)parm[4]; MessageBox.Show(this, "Render() completed successfully."); } catch (Exception exc) { MessageBox.Show(this, exc.ToString(), "Error calling Render()", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// 触发文件传输成功联接到服务器事件 /// </summary> protected virtual void OnTransmitConnected(ConnectedType connectedType) { if (TransmitConnected != null) TransmitConnected(this, connectedType); }
/// <summary> /// 设置远程主机信息 /// </summary> /// <param name="remoteIP">远程主机(广域网)</param> /// <param name="remoteLocalIP">远程主机(局域网)</param> public void setRemoteIP(IPEndPoint remoteLocalIP, IPEndPoint remoteIP) { #region 网络打洞互联 时间计数器 int TimeCount = 0; System.Timers.Timer timer1 = new System.Timers.Timer(); timer1.Interval = 500; timer1.Enabled = true; timer1.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e) { TimeCount++; if (toEP == null && TimeCount <= 20)//如果10秒后还未与对方建立联接 { UDPFramePacket packet = new UDPFramePacket(); packet.type = (byte)TransmitType.Penetrate;//打洞数据包 packet.Block = new byte[1400]; if (sockUDP != null && sockUDP.Listened) { sockUDP.Send(remoteLocalIP, packet.ToBytes());//发送一次局域网正常打洞请求 } UDPFramePacket packet1 = new UDPFramePacket(); packet1.type = (byte)TransmitType.Penetrate;//打洞数据包 packet1.Block = new byte[512]; if (sockUDP != null && sockUDP.Listened) { sockUDP.Send(remoteLocalIP, packet1.ToBytes());//发送一次局域网小包打洞请求 } UDPFramePacket packet2 = new UDPFramePacket(); packet2.type = (byte)TransmitType.Penetrate;//打洞数据包 packet2.Block = new byte[1400]; if (sockUDP != null && sockUDP.Listened) { sockUDP.Send(remoteIP, packet2.ToBytes());//发送一次广域网打洞请求 } UDPFramePacket packet3 = new UDPFramePacket(); packet3.type = (byte)TransmitType.Penetrate;//打洞数据包 packet3.Block = new byte[512]; if (sockUDP != null && sockUDP.Listened) { sockUDP.Send(remoteIP, packet3.ToBytes());//发送一次广域网小包打洞请求 } } else { //终止发送,并触发获得主机事件 timer1.Enabled = false; timer1.Dispose(); timer1 = null; if (toEP != null)//如果已与对方打洞成功并建立连接 { if (TimeCount <= 10) { connectedType = ConnectedType.UDPLocal;//标明是局域网连接 Console.WriteLine("局域网打洞成功,MTU=" + mtu.ToString() + ",打洞次数:" + TimeCount.ToString()); } else { connectedType = ConnectedType.UDPRemote;//标明是广域网连接 Console.WriteLine("广域网打洞成功,MTU=" + mtu.ToString() + ",打洞次数:" + TimeCount.ToString()); } } else//打洞超时,数据只能通过服务器中转 { Console.WriteLine("局域网打洞不成功,打洞次数::" + TimeCount.ToString()); mtu = 1400; toEP = remoteIP;//将对方的广域网远程主机信息记录下来 } OnTransmitConnected();//触发连接建立事件 } }; #endregion }
void AVC_TransmitConnected(object sender, ConnectedType connectedType) { Console.WriteLine("已经联接:" + connectedType.ToString()); }
/// <summary> /// 设置远程主机信息 /// </summary> /// <param name="remoteIP">远程主机(广域网)</param> /// <param name="remoteLocalIP">远程主机(局域网)</param> public void setRemoteIP(IPEndPoint remoteLocalIP, IPEndPoint remoteIP) { #region 网络打洞互联 时间计数器 int TimeCount = 0; System.Timers.Timer timer1 = new System.Timers.Timer(); timer1.Interval = 500; timer1.Enabled = true; timer1.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e) { TimeCount++; if (toEP == null && TimeCount <= 20)//如果10秒后还未与对方建立联接 { UDPFramePacket packet = new UDPFramePacket(); packet.type = (byte)TransmitType.Penetrate;//打洞数据包 packet.Block = new byte[1400]; if (sockUDP != null && sockUDP.Listened) sockUDP.Send(remoteLocalIP, packet.ToBytes());//发送一次局域网正常打洞请求 UDPFramePacket packet1 = new UDPFramePacket(); packet1.type = (byte)TransmitType.Penetrate;//打洞数据包 packet1.Block = new byte[512]; if (sockUDP != null && sockUDP.Listened) sockUDP.Send(remoteLocalIP, packet1.ToBytes());//发送一次局域网小包打洞请求 UDPFramePacket packet2 = new UDPFramePacket(); packet2.type = (byte)TransmitType.Penetrate;//打洞数据包 packet2.Block = new byte[1400]; if (sockUDP != null && sockUDP.Listened) sockUDP.Send(remoteIP, packet2.ToBytes());//发送一次广域网打洞请求 UDPFramePacket packet3 = new UDPFramePacket(); packet3.type = (byte)TransmitType.Penetrate;//打洞数据包 packet3.Block = new byte[512]; if (sockUDP != null && sockUDP.Listened) sockUDP.Send(remoteIP, packet3.ToBytes());//发送一次广域网小包打洞请求 } else { //终止发送,并触发获得主机事件 timer1.Enabled = false; timer1.Dispose(); timer1 = null; if (toEP != null)//如果已与对方打洞成功并建立连接 { if (TimeCount <= 10) { connectedType = ConnectedType.UDPLocal;//标明是局域网连接 Console.WriteLine("局域网打洞成功,MTU=" + mtu.ToString() + ",打洞次数:" + TimeCount.ToString()); } else { connectedType = ConnectedType.UDPRemote;//标明是广域网连接 Console.WriteLine("广域网打洞成功,MTU=" + mtu.ToString() + ",打洞次数:" + TimeCount.ToString()); } } else//打洞超时,数据只能通过服务器中转 { Console.WriteLine("局域网打洞不成功,打洞次数::" + TimeCount.ToString()); mtu = 1400; toEP = remoteIP;//将对方的广域网远程主机信息记录下来 } OnTransmitConnected();//触发连接建立事件 } }; #endregion }
void AVC_TransmitConnected(object sender, ConnectedType connectedType) { Console.WriteLine("已经联接:" + connectedType.ToString()); }