此篇笔记仍然是关于编程中出现的问题及解决方案记录。服务器与客户端交互模式是网络通信中一种典型且高效保密的通信方式,此篇总结了一点网络编程中可能出现的问题。
关于网络编程中出现的问题
1.首先,测试过程中可能出现的死循环原因之一可能是将memset(buf,0,sizeof(buf));
gets(buf);
注释掉了,因此造成buf一直非空,而sendto非阻塞,可以不断进行while循环。可以尝试排查此错误,这里不能注释掉。
2.其次,代码中真正出现的问题是
sendto(*(int *)arg,buf,strlen(buf),0,(struct sockaddr *)&cliaddr,addrlen)
一直返回-1,因此一直运行printf("error:%s\n", strerror(errno));
,
输出error:Invalid argument