首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2013-09-25 
时间客户端程序,刚学网络编程,求解#includeWinsock.h#includestdlib.h#includestdio.h#pragma comme

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

#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  ");
这个返回的正确么?

热点排行