这学期有个网络程序设计的课要做一个作业交上去,之前已经花了一些时间做的差不多,可恶的是前几天实验室电脑的硬盘坏了,这下全完了,又花了两三天的时间去整那玩意,遇到了N多的问题,白白浪费了我的时间,有些问题自己看看真的是超级的小白了。
首先: 由于不小心,c语言的其中一条语句逻辑没整对:
if( ( cst = accept( st, (struct sockaddr *)&csin, &slen ) ) < 0 )
其中的括号给露了,调试了半天都是出来 cst = 0 ,后面的程序可想而知,所有的数据都往终端输出了,真的是杯具啊。。
还有一个问题困扰了N久那就是在写UDP传输的时候,一直不能按照预想的发送接受数据,调了我头都大了,后来上网下了一个程序作参考,发现是在recvfom的时候最后一个参数要先初始化一下才行,得先设置sa_len 的大小,后来查了一下书发现果真是如此,因为sa_len是先指定sa所拥有的空间大小,这样才能告知程序空间的大小,而返回的时候是sa的实际大小,并不是自己刚开始所想的那样,sa_len只是让程序来给赋值,他还有指示空间大小的作用,唉,刚开始的时候怎么就木有认真阅读,以此为鉴! 所一用udp传输的时候千万别忘了先
sa_len = seizeof( sa );
饿了,吃饭去了.
阅读(510) | 评论(0) | 转发(0) |