好长时间没使用网络编程忘得差不多了,写了TCP,UDP测试代码,得出以下结论:
一:UDP特性
1. UDP sendto函数不管对端是否存在(即使对端原本存在,现在已经关闭了),都义无反顾的发送出去
2. UDP recvfrom函数只会接受实时数据,比如不会接收尚未调用recvfrom函数之前对端发送过来的数据
3. UDP sendto, recvfrom函数返回值不会轻易是0;除非sendto的长度为0
4. UDP 任意对端关闭掉,则对方都不能轻易察觉到
二:TCP特性
1. tcp recv函数返回0,一般说明对端已经关闭了(特殊情况对端发送0直接除外)
2. tcp send函数不会轻易返回0(除非send长度为0)
3 tcp 任意对端关闭,可以根据recv返回0来判断