windows 网络程序设计

来源:百度知道 编辑:UC知道 时间:2024/06/22 21:01:41
......
char sendBuf[128];

int len = sizeof(sockaddr);

while(true)

{
printf("输入要发送的数据:");
gets(sendBuf);
sendto(Svr,sendBuf,strlen(sendBuf)+1,0,(sockaddr*)&addrSvr,len);
.....
char sendBuf[128];这个已声明数据且大小为128,但下面我就看不大懂了,我是这样理解的,不知道对不对,大家批正一下:当我第一次输入要发送的数据如:aa,是不是存到sendBuf〔0〕=aa,第二次输入bb,是不是存到sendBuf〔1〕=bb
strlen(sendBuf)+1 为什么还要加1

1.sendBuf是数组,每次发送都是存储sendBuf[]的,所以每次发送都要重新赋值,sendBuf[0]只存一个字符.

2.你发送的是字符串,strlen(sendBuf)计算长度没有包括结束字符'\0',所在长度需要+1.