RT 5003
main(int argc,char *argv)
{
char buf[128];
SOCKET sclient;
struct sockaddr_in server;
int namelen,pklen;
int status,ret;
char szmessage[128];
WSADATA wsd;
if(argc<2)
{
printf("usage:\n");
printf("%s ipaddr",__FILE__);
printf("ipaddr is the server''s ip address,like xxx.xxx.xxx.xxx\n");
exit(1);
}
if((status=WSAStartup(MAKEWORD(2,2),&wsd))!=0)
{
perror("wsastartup() failed:");
exit(1);
}
if((sclient=socket(AF_INET,SOCK_STREAM,0))< 0)
{
perror("socket failed :");
exit(1);
}
ZeroMemory(&server,sizeof(server));
ZeroMemory(szmessage,sizeof(szmessage));
server.sin_family=AF_INET;
server.sin_port=htons(USERPORT);
server.sin_addr.s_addr=inet_addr(argv);
if(connect(sclient,(struct sockaddr *)&server,sizeof(server))<0)
{
perror("connect() failed :");
printf("%d",WSAGetLastError());
exit(3);
}
namelen=sizeof(sclient);
/*for(ret=0;ret<10;ret++)
{
if(send(sclient,szmessage,sizeof(szmessage),0)<0)
{
perror("send() failed:");
break;
}
printf("send() return success\n context is %s \n",szmessage);
if((pklen=recv(sclient,buf,sizeof(buf),0))<0)
{
perror("recv() failed:");
exit(5);
}
else
if(pklen==0)
{
printf("recv():return FAILED,connected is shut down");
break;
}
else
{
printf("the pktlen is %d\n",pklen);
buf[pklen]=''\0'';
printf("recv():return success\npacket length=%d and the context is %s\n",pklen,buf);
ZeroMemory(buf,sizeof(buf));
}
Sleep(10);
}*/
//while(strcmp(szmessage,"q"))
while(1)
{
ZeroMemory(szmessage,sizeof(szmessage));
//scanf("%s",szmessage);
//puts(szmessage);
//gets(szmessage);
//send(sclient,szmessage,sizeof(szmessage),0);
//Sleep(10);
ZeroMemory(buf,sizeof(buf));
ret=recv(sclient,buf,sizeof(buf),0);
buf[ret]=''\0'';
//printf("%s the length is %d ",buf,ret);
puts(buf);
Sleep(1);
}
closesocket(sclient);
WSACleanup();
printf("server ended successfully\n");
return 0;
}