青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 124,  comments - 29,  trackbacks - 0

在MonitorWnd.cs類中:
事件處理函數:
//tabControl1是Form窗體中創建的控件,也就是UI線程中創建的控件

//要在事件處理函數中動態的創建TabPage,這個事件處理函數是被另一個read線程調用的

  private void MonitorWnd_Load(object sender, EventArgs e)
        {
            monAge = new MonitorAgency(curNet);
            monAge.parser.UserAction += new UserActionHandler(parser_UserAction);
            monAge.Connect();

        }
  void parser_UserAction(object sender, UserActionEventArgs args)
        {

            #region
            if (tabControl1.InvokeRequired)
            {
                tabControl1.Invoke(new MethodInvoker(delegate { AddPageToTabControl(tabControl1, args); }));
            }

            else
            {
                AddPageToTabControl(tabControl1, args);
            }
            #endregion
        }


 void AddPageToTabControl(TabControl ctrl, UserActionEventArgs args)
        {
            //TODO:取得一個用戶行為信息的時候引發這個事件
            //動態創建tab頁
            string tabTitle = args.UserName + " " + args.ProcID;
            string addTxt = args.Time + "\r\n" + args.IP + "\r\n" + args.Remark;


            bool isFind = false;

            foreach (TabPage tpUser in this.tabControl1.Controls)
            {
                if (tpUser.Text == tabTitle)
                {
                    isFind = true;
                    string strtxt = ((TextBox)tpUser.Controls[0]).Text;
                    ((TextBox)tpUser.Controls[0]).Text = strtxt + "\r\n" + addTxt;
                    ctrl.SelectedTab = tpUser;
                    break;
                }
            }
            if (isFind == false)
            {
                TabPage newTpUser = new TabPage();
                newTpUser.Text = tabTitle;
                TextBox tb = new TextBox();
                tb.Dock = DockStyle.Fill;
                tb.Multiline = true;
                tb.ScrollBars = ScrollBars.Both;
                tb.Text = addTxt;
                newTpUser.Controls.Add(tb);
                newTpUser.Select();
                ctrl.TabPages.Add(newTpUser);
                ctrl.SelectedTab = newTpUser;
            }

        }

MonitorAgency.cs中:
  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Net;
  5using System.Net.Sockets;
  6using System.Diagnostics;
  7using System.Windows.Forms;
  8using System.IO;
  9using System.Xml;
 10using System.Threading;
 11
 12namespace BurEmluator
 13{
 14    public class MonitorAgency
 15    {
 16        memberVar
 39
 40        property
 48        construct
 61        public bool Connect()
 62        {
 63               
 64                   
 65                    try
 66                    {
 67                        //連接互助SOCK
 68                        ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 69
 70                        ClientSocket.Connect(EPServer);
 71                        //連接互助SOCK
 72                        client.Connect(IPAddress.Parse(m_proxyIP), Convert.ToInt32(m_proxyPort));
 73
 74                        //發送TELNET IP PORT
 75                        //sendMsg = string.Format("telnet %s %s\r\n",m_proxyIP, m_proxyPort);
 76                        //DispatchMessage(sendMsg);
 77                        readThread = new Thread(new ThreadStart(Read));
 78                        readThread.IsBackground = true;
 79                        readThread.Start();
 80
 81                        return true;
 82                    }

 83                    catch (Exception ex)
 84                    {
 85                        MessageBox.Show(ex.Message);
 86                        return false;
 87                    }

 88               
 89            }

 90        private void Close()
 91        {
 92            if (ClientSocket.Connected)
 93            {
 94                ClientSocket.Close();
 95            }

 96        }
 
 97        protected void Read()
 98        {
 99            while (true)
100            {
101                try
102                {
103                    Byte[] Rec = new byte[1024];
104                    NetworkStream netstream = new NetworkStream(ClientSocket);
105                    int iRev = netstream.Read(Rec, 0, Rec.Length);//讀取客戶發送來的信息。
106                    string strRev = System.Text.Encoding.GetEncoding("gb2312").GetString(Rec, 0, iRev);
107                    //輸入需要監控的網元
108                    if (strRev.Length >= 0)
109                    {
110                        if (strRev.IndexOf("請輸入命令"!= -1)
111                        {
112                            sendMsg = "track " + m_curNet + "\r\n";
113
114                            DispatchMessage(sendMsg);
115                        }

116
117                        else
118                        {
119                            int idxend = strRev.LastIndexOf("END");
120                            int idxj = strRev.LastIndexOf("<");
121                            int idxn = strRev.LastIndexOf("\n");
122
123                            if (idxn == strRev.Length-1 || idxend != -1 || idxj != -1)
124                            {
125                                StrMonInfo = StrMonInfo + strRev;
126                                parser.ProcessResult(StrMonInfo);
127                                StrMonInfo = "";
128                            }

129                            else
130                            {
131                                StrMonInfo = StrMonInfo + strRev;
132                            }

133                        }

134                    }

135                   
136
137                }

138                catch (Exception ex)
139                {
140                    MessageBox.Show(ex.Message + ":" + ex.StackTrace.ToString());
141                }

142                Thread.Sleep(100);
143            }

144        }

145        public void CloseConnect(bool p)
146        {
147            if (client != null)
148            {
149                client.Close();
150            }

151            if (readThread.IsAlive == true)
152            {
153                readThread.Abort();
154            }

155        }

156        private void ReadMonitorXML()
157        {
158            string strFilePath = Application.StartupPath + "\\" + "MonitorConfig.xml";
159            XmlDocument xmlDoc = new XmlDocument();
160            xmlDoc.Load(strFilePath);
161            XmlNode xn = xmlDoc.SelectSingleNode("Monitor");
162            foreach (XmlNode cxn in xn.ChildNodes)
163            {
164                if (cxn.Name.Equals("IP"))
165                {
166                    m_proxyIP = cxn.InnerText;
167                }

168                else if (cxn.Name.Equals("Port"))
169                {
170                    m_proxyPort = Convert.ToInt32(cxn.InnerText);
171                }

172            }

173        }

174        private void DispatchMessage(string sendMsg)
175        {
176            NetworkStream netstream = new NetworkStream(ClientSocket);
177            try
178            {
179                Byte[] sendbyte = new Byte[1024];
180
181                sendbyte = System.Text.Encoding.GetEncoding("gb2312").GetBytes(sendMsg.ToCharArray());
182                netstream.Write(sendbyte, 0, sendbyte.Length);//向socket服務器發送信息。
183                netstream.Flush();
184            }

185            catch
186            {
187                System.Windows.Forms.MessageBox.Show("發送失敗");
188                Close();
189            }

190        }
   
191    }

192     
193    public class UserActionEventArgs : EventArgs
194    {
195        public string Time;
196        public string ProcID;
197        public string UserName;
198        public string IP;
199        public string Remark;
200    }

201
202    public delegate void UserActionHandler(object sender, UserActionEventArgs args);
203    public class MonitorResultParser
204    {
205        string result;
206
207        public event UserActionHandler UserAction;
208
209        public void ProcessResult(string strResult)
210        {
211            result = strResult;
212            string strUserAction = "";
213            int idxBegin = 0, idxEnd = 0;
214            while ((idxBegin = result.IndexOf("時間:")) >= 0)
215            {
216                Debug.Write(result.Length + "\r\n");
217                idxEnd = result.IndexOf("時間:", idxBegin + 3);
218                if (idxEnd > idxBegin)
219                {
220                    strUserAction = result.Substring(idxBegin, idxEnd - idxBegin);
221                    Debug.Write(result.Length);
222                    result = result.Substring(idxEnd);
223                    Debug.Write(result.Length + "\r\n");
224                }

225                else if (idxEnd == -1)
226                {
227                    Debug.Write(result.Length);
228                    strUserAction = result.Substring(idxBegin);
229                    result = "";
230                }

231                Debug.Write(strUserAction.Length + "\r\n");
232                UserActionEventArgs arg = ParseResult(strUserAction);
233                UserAction.Invoke(this, arg);
234            }

235        }

236
237        protected UserActionEventArgs ParseResult(string strUserAction)
238        {
239            UserActionEventArgs arg = new UserActionEventArgs();
240            //解析strUserAction
241            int itime = strUserAction.IndexOf("時間:");
242            int ipid = strUserAction.IndexOf("進程號:");
243            int iuser = strUserAction.IndexOf("用戶:");
244            int iip = strUserAction.IndexOf("IP:");
245
246            int iremark1 = strUserAction.IndexOf("命令:");
247            int iremark2 = strUserAction.IndexOf("返回信息:");
248            int iremark3 = strUserAction.IndexOf("提示信息:");
249            if (itime >= 0 && ipid >= 0)
250            {
251                arg.Time = strUserAction.Substring(itime, ipid - itime);
252            }

253            if (iuser >= 0)
254            {
255                arg.ProcID = strUserAction.Substring(ipid,iuser - ipid);
256            }

257            if (iip >= 0)
258            {
259                arg.UserName = strUserAction.Substring(iuser,iip - iuser);
260            }

261
262            int iremark = 0;
263            if(iremark1!=-1)
264            {
265                iremark = iremark1;
266            }

267            else if(iremark2 != -1)
268            {
269                iremark = iremark2;
270            }

271            else if(iremark3 != -1)
272            {
273                iremark = iremark3;
274            }

275            arg.IP = strUserAction.Substring(iip,iremark - iip);
276            arg.Remark = strUserAction.Substring(iremark);
277            
278             return arg;
279        }

280
281    }

282
283  
284    
285}

286
posted on 2008-11-19 09:25 天書 閱讀(2159) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(5)

隨筆檔案

文章分類

文章檔案

好友的Bolg

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久黄色级2电影| 亚洲人妖在线| 香港久久久电影| 午夜精品免费| 国产精品日韩二区| 亚洲欧美日韩国产一区二区| 欧美先锋影音| 一级日韩一区在线观看| 国产欧美在线视频| 亚洲综合电影| 亚洲综合色激情五月| 久久精品一区二区| 久久综合给合久久狠狠色| 欧美激情久久久| 最新日韩av| 99在线热播精品免费| 一本久道久久综合中文字幕| 国内精品伊人久久久久av一坑 | 最新国产精品拍自在线播放| 日韩视频免费在线| 亚洲精品视频二区| 久久久噜噜噜久久久| 亚洲一区二区三区在线看| 久久久久国产一区二区三区| 亚洲一二三区精品| 国产欧美一区二区白浆黑人| 亚洲国产精品电影| 亚洲一区二区精品在线| 久久免费观看视频| 91久久精品美女高潮| 国产午夜精品久久久| 夜夜嗨av色综合久久久综合网| 永久91嫩草亚洲精品人人| 一区二区在线观看视频| 日韩亚洲欧美成人| 欧美在线三区| 欧美精品一区二区久久婷婷| 国产精品不卡在线| 99视频一区| 久久九九热免费视频| 欧美日产在线观看| 亚洲欧美日韩一区二区| 99av国产精品欲麻豆| 久久久福利视频| 亚洲精品乱码久久久久久黑人 | 久久精品人人做人人爽电影蜜月| 老司机精品视频网站| 久久精品天堂| 一本一本久久a久久精品综合妖精| 久久久噜久噜久久综合| 久久狠狠一本精品综合网| 欧美大秀在线观看| 午夜日韩在线观看| 亚洲精品乱码久久久久久黑人 | 国产精品久久久久av免费| 亚洲激情午夜| 久久精品国产清高在天天线| 国产精品日韩久久久久| 一区二区三区四区精品| 亚洲综合欧美日韩| 亚洲激情视频网站| 国内精品视频在线观看| 久久久999精品免费| 快播亚洲色图| 欧美一区免费视频| 一区二区日本视频| 亚洲电影下载| 国产一区二区三区黄视频| 香蕉尹人综合在线观看| 久久精品一二三| 亚洲自拍另类| 宅男精品导航| 亚洲麻豆国产自偷在线| 欧美日韩裸体免费视频| 99国产精品久久久| 亚洲国产成人在线| 免费在线亚洲欧美| 久久综合狠狠综合久久激情| 亚洲高清视频在线| 国产精品蜜臀在线观看| 一区二区三区视频在线看| 午夜精品久久| 午夜在线一区| 亚洲欧美美女| 中文av字幕一区| 亚洲精品韩国| 亚洲精品乱码久久久久久日本蜜臀| 欧美日韩精品三区| 欧美国产高清| 欧美日本精品一区二区三区| 亚洲图片欧美一区| 亚洲视频在线看| 亚洲视频在线视频| 亚洲午夜日本在线观看| 美国十次成人| 巨胸喷奶水www久久久免费动漫| 亚洲欧洲视频在线| 亚洲精品三级| 一区二区三区精品在线| 国产精品日韩久久久| 另类专区欧美制服同性| aa级大片欧美三级| 一区二区三区欧美在线| 久久久久五月天| 久久亚洲一区二区三区四区| 夜夜嗨av一区二区三区四季av| 国产精品免费久久久久久| 亚洲综合色婷婷| 亚久久调教视频| 久久蜜桃香蕉精品一区二区三区| 99re6热只有精品免费观看 | 另类尿喷潮videofree| 亚洲精品少妇30p| 99精品视频免费全部在线| 久久久久一区二区三区| 在线视频免费在线观看一区二区| 国产日韩在线一区| 在线看片欧美| av成人动漫| 欧美在线观看视频一区二区| 亚洲欧美电影在线观看| 亚洲午夜精品久久久久久app| 亚洲精品乱码久久久久久按摩观| 亚洲成人影音| 欧美在线视频观看免费网站| 校园春色国产精品| 91久久精品久久国产性色也91| 欧美大片免费观看| 亚洲永久网站| 欧美精品久久99久久在免费线| 欧美电影专区| 狠狠色丁香久久婷婷综合丁香| 国产一区二区三区在线观看网站| 国产欧美一区二区色老头 | 亚洲精品乱码久久久久久久久 | 欧美一进一出视频| 欧美三区免费完整视频在线观看| 欧美视频你懂的| 亚洲精品自在久久| 老司机精品导航| 欧美一区午夜精品| 国产久一道中文一区| 国产一区二区在线观看免费| 精品成人一区二区三区四区| 亚洲国产成人在线| 久久亚洲私人国产精品va媚药| 欧美成人按摩| 久久久久久成人| 国产揄拍国内精品对白| 亚洲国产一区二区三区a毛片| 亚洲精品三级| 亚洲国产婷婷综合在线精品| 一区二区欧美在线| 欧美日韩国产一级片| 国产精品自在欧美一区| 伊人精品久久久久7777| 亚洲美女啪啪| 欧美激情一级片一区二区| 一级成人国产| 国产精品久久综合| 亚洲欧美网站| 午夜精品电影| 国产在线精品自拍| 久久免费精品视频| 久久久xxx| 亚洲国产cao| 亚洲电影av在线| 欧美高清免费| 亚洲视频自拍偷拍| 国产精品99久久久久久人| 久久久久久一区二区| 欧美日韩免费观看一区| 国产综合视频在线观看| 一区二区久久久久久| 久久人人九九| 另类欧美日韩国产在线| 国产精品久久一级| 久久久国产午夜精品| 一本一道久久综合狠狠老精东影业 | 女女同性女同一区二区三区91| 欧美三级韩国三级日本三斤| 一区二区三区自拍| 免费不卡欧美自拍视频| 亚洲永久精品大片| 韩国一区二区三区美女美女秀| 亚洲系列中文字幕| 亚洲欧美影院| 在线精品亚洲| 一区二区电影免费观看| 噜噜噜久久亚洲精品国产品小说| 国产精品呻吟| 久久男人资源视频| 欧美黑人国产人伦爽爽爽| 伊人精品在线| 日韩午夜在线| 激情91久久| 亚洲美女黄网| 黄色精品在线看| 亚洲精品国产品国语在线app| 久久久蜜桃一区二区人|