|
我本来用vc6.0写了个udp协议,测试没有问题!但我把客户端移植到evc上时,出了这样的问题:
ompiling...
client.cpp
Linking...
corelibc.lib(pegwmain.obj) : error LNK2019: unresolved external symbol _WinMain referenced in function _WinMainCRTStartup
emulatorDbg/C.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
C.exe - 2 error(s), 0 warning(s)
源代码如下:
#include
#include
#include
#pragma comment(lib,"winsock.lib")
int main()
{
/**********************初始化winsock的版本*************************/
WSADATA wsaData;
if(WSAStartup(MAKEWORD(1,1),&wsaData)!=0)
{
printf("WSAStartup()Fail!\r\n");
return 0;
}
/**********************套接字*********************************/
int sock; //sock,套接字编号
SOCKADDR_IN toAddr; //在sendto中使用的地址结构体
SOCKADDR_IN fromAddr; //在recvfrom中使用的地址结构体
int fromLen;
char recvBuffer[123];
char string[128];
scanf("%s",string);
printf("\n");
sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); //在UDP连接中的参数设置,套接字
if(sock<0)
{
printf("套接字失败\r\n");
WSACleanup();
return 0;
}
/************toAddr内存初始化******************************/
memset(&toAddr,0,sizeof(toAddr));
toAddr.sin_family=AF_INET;
toAddr.sin_addr.s_addr=inet_addr("127.0.0.1");
toAddr.sin_port=htons(4000);
if(sendto(sock,string,strlen(string),0,(struct sockaddr*)&toAddr,sizeof(toAddr))!=(signed)strlen(string))
{
printf("sendto() 失败!\n");
closesocket(sock);
WSACleanup();
return 0;
}
fromLen=sizeof(fromAddr);
if(recvfrom(sock,recvBuffer,strlen(recvBuffer),0,(struct sockaddr*)&fromAddr,&fromLen)<0)
{
printf("recvfrom()失败!");
closesocket(sock);
WSACleanup();
return 0;
}
printf("recvfrom() result:%s",recvBuffer);
closesocket(sock);
WSACleanup();
return 0;
}
望各位大哥指点!谢谢!
|
|