日期:2014-05-18  浏览次数:20991 次

c# socket数据流处理
socket传回来的数据中 <1,a,a,a,a,s,d,we><q,we,e,e,r,
这个是第一条数据,第二条数据d,d,e,f,c,><ahheiuheikuhfkhkn每一条数据是以<>开头和结束的
我怎么把每条数据都完整的拿出来像 数据1.<1,a,a,a,a,s,d,we> 数据2.<q,we,e,e,r,d,d,e,f,c,>
然后每条数据保存起来

------解决方案--------------------
手上没有代码 ,只能提供下思路 其实很简单。。如果你不要知道被分的词的含义的话。

其实也不需要独立的线程来负责解析

你可以当每接收到新的数据向缓冲区附加之后,来触发试解析功能 ,匹配成功,则获取匹配的内从,并冲缓冲区移除,如果缓冲区不为空,继续试解析,无法解析则停止。等待下次附加数据时触发解析。。

基本上就这样
------解决方案--------------------
C# code

            string source = "<1,a,a,a,a,s,d,we><q,we,e,e,r,>";
            Regex reg = new Regex(@"(?<=<)[\s\S]*?(?=>)");
            foreach (Match m in mc)
            {
                MessageBox.Show(m.Value);
                //MessageBox.Show(m.Groups["value1"].Value);
                //MessageBox.Show(m.Groups["value2"].Value);
            }

------解决方案--------------------
就是用正则表达式匹配。个人认为也不需要用单独的线程了吧,每接受一次,就匹配,直到匹配不上就等待下次接收