以前不懂socket,就只有一个劲学,一个劲“抄袭”书上的例子。把例子一步一步调试,一步一步看所有的参数的变化。抄的多了,调试过后,发现socket编程不过就是这样,一下明了不少。
最开始建立的套接字都是SOCK_STREAM或者SOCK_DGRAM,这里边主要用到的几个函数,已经全部都熟悉了,自己也写了相关的程序证实其功能。从简单的服务器-客户端程序,到并发的服务器程序,都写过一遍。然后自己再写了一个通用的可以同时建立TCP以及UDP的程序,小有成就感。
然后开始用原始套接字编程,原始套接字当中发现了不少问题。首先就是包头的组建,里边不少地方用到了htons,htonl,inet_addr等一系列函数,头大啊,这些函数怎么工作的,看上去怎么都这么抽象呢?IP投里边那些部分需要用到htons?差不多理清了,又发现问题了。在编写UDP的原始套接字时,用recvfrom函数,得到的发送端的地址端口始终为0。。。。终究还算是克服了这些问题,写了一个简单的抓包软件,我相信这对很多哥们来说算是非常easy的吧。不过我真费工夫了,还好,学到不少。
记下这些,只想告诉自己,不要害怕困难,你走过去,它自然就低头了!加油!
阅读(2549) | 评论(1) | 转发(0) |