Run-Time Check Failure #2 - Stack around the variable 'cc' was corrupted.
char cc[1024]; //此处如果索引值设置小了,就会出问题。比如:char cc[1];是由于建立的数组下标溢出造成的
// vc2_2_4UDPserver_Txwtech.cpp : 定义控制台应用程序的入口点。
//
#include "StdAfx.h"
#include <WinSock2.h>
#include<stdio.h>
#include<Windows.h>
#pragma comment(lib,"WS2_32.lib")
int main()
{
WSADATA data;
WORD w=MAKEWORD(,);
char sztext[]="欢迎您\r\n";
::WSAStartup(w,&data);
SOCKET s;
s=::socket(AF_INET, SOCK_DGRAM,);
sockaddr_in addr,addr2;
int n=sizeof(addr2);
char buff[]={};
addr.sin_family=AF_INET;
addr.sin_port=htons();
addr.sin_addr.S_un.S_addr=INADDR_ANY;
::bind(s,(sockaddr*)&addr,sizeof(addr));
printf("UDP服务器已经启动\r\n");
while()
{
char cc[]; //此处如果索引值设置小了,就会出问题。比如:char cc[1];是由于建立的数组下标溢出造成的
//c=getchar();
// c='';
printf("请输入C:");
scanf("%s",cc);
//sztext=c;
// strcpy(sztext,c);
if (strcmp(cc,"qq")==) {
printf("即将退出%s",cc);
::Sleep();
::closesocket(s);
::WSACleanup();
// strcpy(cc,"");
return ;
}
if(::recvfrom(s,buff,,,(sockaddr*)&addr2,&n)!=)
{
printf("%s已经连接上\r\n",inet_ntoa(addr2.sin_addr));
printf("%s\r\n",buff); ::sendto(s,sztext,sizeof(sztext),,(sockaddr*)&addr2,n);
// break;
} }
::closesocket(s);
::WSACleanup(); if(getchar())
{
return ;
//::sendto(s,sztext,sizeof(sztext),0,(sockaddr*)&addr2,n);
}
else
{
::Sleep();
}
}