After days of crazy work, I found myself got something. The most obvious is that I learned some skills in programming with MFC and socket. I also got more familiar with standard C++. While the most important thing is that I became really aware of the importance of software designing.
And requirement analysis can't substitute designing. I got this experience from a network program I'm handling these days. Firstly, I listed the reqirements, then I sorted the requirments ... I coped with requirements really carefully. But I still found it awful when implementing the solution. I found it more and more like lines of mess. And feel myself tangled more and more deep. So where are those problems come from? After analysis, I think they are out of the fact that I didn't do any designing, no detailed designing, even no overall designing. It's really siny for me to think that it's enough to implement this program with just the requirements. Now I think it far from enough, I should have done overall designing and then refine it again and again. Ok, it's well. I have learned something, that's the key point.