Example #1
0
        private void Received_TransBuffer(int userId, IntPtr buf, int len, int userValue)
        {
            //过滤信息()
            string m_Command = Marshal.PtrToStringAnsi(buf);

            try
            {
                if (m_Command.Length > 3)
                {
                    string[] m_Packet = m_Command.Split(":".ToCharArray());
                    //选择是否接收文件
                    if (m_Packet[0] == "003" && m_Packet[3] == "file")
                    {
                        int          m_TempUserID = Convert.ToInt32(m_Packet[1]);
                        string       m_pacName    = GetUserNameByID(m_TempUserID);
                        DialogResult r            = MessageBox.Show("文件名:" + m_Packet[2].ToString() + ",是否接收?", m_pacName + "发送文件请求", MessageBoxButtons.YesNo);
                        if (r == System.Windows.Forms.DialogResult.Yes)
                        {
                            FolderBrowserDialog fbd = new FolderBrowserDialog();
                            if (fbd.ShowDialog() == DialogResult.OK)
                            {
                                receivePath = fbd.SelectedPath;
                                string m_Message = "003:" + m_myUserID.ToString() + ":" + "fileisok:";
                                byte[] buffer    = Encoding.Default.GetBytes(m_Message);
                                int    rett      = AnyChatCoreSDK.TransBuffer(m_TempUserID, buffer, buffer.Length);
                            }
                        }
                        else
                        {
                            string m_Message = "003:" + m_myUserID.ToString() + ":" + "fileisno:" + m_Packet[2].ToString();
                            byte[] buffer    = Encoding.Default.GetBytes(m_Message);
                            int    rett      = AnyChatCoreSDK.TransBuffer(m_TempUserID, buffer, buffer.Length);
                        }
                    }
                    //发送文件
                    else if (m_Packet[0] == "003" && m_Packet[2] == "fileisok")
                    {
                        int taskId       = 0;
                        int m_TempUserID = Convert.ToInt32(m_Packet[1]);
                        int flag         = AnyChatCoreSDK.TransFile(m_TempUserID, sendPath, 1, 0, 0, ref taskId);
                        Print("成功发送" + sendPath + "文件");
                    }
                    else if (m_Packet[0] == "003" && m_Packet[2] == "fileisno")
                    {
                        string m_tempName = GetUserNameByID(Convert.ToInt32(m_Packet[1]));
                        Print(m_tempName + "拒绝接收文件" + m_Packet[3].ToString());
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Example #2
0
        /// <summary>
        /// 发送透明通道
        /// </summary>
        /// <param name="tuserid">目标ID</param>
        /// <param name="cmd">指令ID</param>
        /// <param name="os">参数</param>
        /// <returns>调用结果</returns>
        internal int TranBuff(int tuserid, int cmd, params ParamInfo[] os)
        {
            int ret = -1;

            try
            {
                string strCmd = CommandHelp.GenerateCommand(cmd, os);
                byte[] buff   = Encoding.Default.GetBytes(strCmd);
                AnyChatCoreSDK.TransBuffer(tuserid, buff, buff.Length);
            }
            catch (Exception ex)
            {
                Log.SetLog("VideoChat.Hall.TranBuff       TranBuff:" + ex.Message.ToString());
            }
            return(ret);
        }
Example #3
0
        private void btn_transfile_Click(object sender, EventArgs e)
        {
            if (dgv_onlineuser.SelectedRows.Count == 0)
            {
                Print("文件发送失败,请选择目标用户");
                return;
            }
            else
            {
                DataGridViewRow dgvr           = dgv_onlineuser.SelectedRows[0];
                string          m_TempUserName = dgvr.Cells["gvc_username"].Value.ToString();
                if (m_TempUserName == frmLogin.m_UserName || m_TempUserName == "大家")
                {
                    Print("文件发送失败,请选择目标用户");
                    return;
                }
                else
                {
                    OpenFileDialog dlgopenFile = new OpenFileDialog();
                    dlgopenFile.Title = "选择需要发送的文件";
                    DialogResult dr = dlgopenFile.ShowDialog();

                    if (dr == DialogResult.OK)
                    {
                        if (File.Exists(dlgopenFile.FileName))
                        {
                            sendPath = dlgopenFile.FileName;
                            //int taskId = 0;
                            int m_TempUserID = GetUserIDByName(m_TempUserName);
                            //发送命令
                            FileInfo fi        = new FileInfo(dlgopenFile.FileName);
                            string   m_Message = "003:" + m_myUserID.ToString() + ":" + fi.Name + ":" + "file";
                            byte[]   buffer    = Encoding.Default.GetBytes(m_Message);
                            int      rett      = AnyChatCoreSDK.TransBuffer(m_TempUserID, buffer, buffer.Length);
                            Print("向" + m_TempUserName + "发送文件,等待接收...");
                        }
                    }
                    dlgopenFile.Dispose();
                    dlgopenFile = null;
                }
            }
        }