读书人

时间客户端程序刚刚学网络编程求解

发布时间: 2013-09-25 11:02:59 作者: rapoo

时间客户端程序,刚学网络编程,求解

#include<Winsock.h>
#include<stdlib.h>
#include<stdio.h>

#pragma comment(lib,"ws2_32.lib")

int main(){

int wVersionRequested =0x0201;

WSADATA wsaData;

WSAStartup( wVersionRequested, &wsaData );


struct sockaddr_in servaddr;

int sock;//,n;
unsigned long ultime;


sock=socket(AF_INET,SOCK_STREAM,0);
if(sock==INVALID_SOCKET )
printf("error\n");

servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(13);
servaddr.sin_addr.S_un.S_addr=inet_addr("133.100.11.8 ");
int ids=connect(sock,(const struct sockaddr*)&servaddr,sizeof(servaddr));

if(ids!=0)
printf("connect error %d\n",ids);


int err = WSAGetLastError();
printf("unknown error id = %d\n",err);

return 0;
}

if(recv(sock,(char*)&ultime,4,0 )==SOCKET_ERROR){
int id = WSAGetLastError();
switch (id){
case WSANOTINITIALISED:
printf("not initialized\n");
break;
case WSASYSNOTREADY:
printf("sub sys not ready\n");
break;
case WSAHOST_NOT_FOUND:
printf("name server not found\n");
break;
case WSATRY_AGAIN:
printf("server fail\n");
break;
case WSANO_RECOVERY:
printf("no recovery\n");
break;
case WSAEINPROGRESS:
printf("socket blocked by other prog\n");
break;
case WSANO_DATA:
printf("no data record\n");
break;
case WSAEINTR:
printf("blocking call canciled\n");
break;
case WSAEPROCLIM:
printf("limit exceeded\n");
break;
case WSAEFAULT:
printf("lpWSAData in startup not valid\n");
default: printf("unknown error id = %d\n",id);
break;
}

}

closesocket(sock);
return 0;

}
书上代码那么简单,根本不能运行。connect()错误。10060.到底怎么解决?是端口问题吗?帮帮忙吧


[解决办法]
10060就是连不上,telnet看看地址端口通不通
[解决办法]
这有很多socket例子,你看看吧:
http://download.csdn.net/detail/geoff08zhang/4571358
[解决办法]
端口13,这个是系统保留的端口,服务器设置为8001试试,10060是系统拒绝连接,要么是你的端口不对,要么是IP地址不对
[解决办法]
servaddr.sin_addr.S_un.S_addr=inet_addr("133.100.11.8 ");
这个返回的正确么?

读书人网 >VC/MFC

热点推荐