luojiafeng1984
FTP连接10061错误
自己写的一个FTP连接代码,连接时出现 10061错误, 就是连接被积极的拒绝了.
可是我用Windows上的FTP命令行连接是可以连接上的.这是怎么回事呢?
端口是21,主机名用的是 127.0.0.1
自己在自己机子上装的一个FTP服务器.
[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000ff]int[/color] CWLSocket[color=#0000cc]:[/color][color=#0000cc]:[/color][color=#ff0000]Connect[/color][color=#0000cc]([/color][color=#0000ff]const[/color] [color=#0000ff]char[/color][color=#0000cc]*[/color] szAddr[color=#0000cc],[/color] [color=#0000ff]int[/color] nPort[color=#0000cc],[/color] [color=#0000ff]int[/color] timeout [color=#ff9900]/*= 0*/[/color][color=#0000cc],[/color] [color=#0000ff]int[/color] nReconnectTimes [color=#ff9900]/* = 1 */[/color][color=#0000cc])[/color]
[color=#0000cc]{[/color]
[color=#ff0000]Socket[/color][color=#0000cc]([/color][color=#ff0000]AF_INET[/color][color=#0000cc],[/color] [color=#ff0000]SOCK_STREAM[/color][color=#0000cc],[/color] 0[color=#0000cc])[/color][color=#0000cc];[/color]
[color=#ff0000]assert[/color][color=#0000cc]([/color] m_socket [color=#0000cc]![/color][color=#0000cc]=[/color] INVALID_SOCKET [color=#0000cc])[/color][color=#0000cc];[/color]
[color=#0000ff]if[/color] [color=#0000cc]([/color] timeout [color=#0000cc]>[/color] 0 [color=#0000cc])[/color]
[color=#0000cc]{[/color]
[color=#ff0000]setsockopt[/color][color=#0000cc]([/color]m_socket[color=#0000cc],[/color] SOL_SOCKET[color=#0000cc],[/color] SO_SNDTIMEO[color=#0000cc],[/color] [color=#0000cc]([/color][color=#0000ff]char[/color] [color=#0000cc]*[/color][color=#0000cc])[/color][color=#0000cc]&[/color]timeout[color=#0000cc],[/color] [color=#0000ff]sizeof[/color][color=#0000cc]([/color][color=#0000ff]int[/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc];[/color]
[color=#ff0000]setsockopt[/color][color=#0000cc]([/color]m_socket[color=#0000cc],[/color] SOL_SOCKET[color=#0000cc],[/color] SO_RCVTIMEO[color=#0000cc],[/color] [color=#0000cc]([/color][color=#0000ff]char[/color] [color=#0000cc]*[/color][color=#0000cc])[/color][color=#0000cc]&[/color]timeout[color=#0000cc],[/color] [color=#0000ff]sizeof[/color][color=#0000cc]([/color][color=#0000ff]int[/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc];[/color]
[color=#0000cc]}[/color]
[color=#0000ff]int[/color] nReturn [color=#0000cc]=[/color] SOCKET_ERROR[color=#0000cc];[/color]
[color=#0000ff]int[/color] nConnectTimes [color=#0000cc]=[/color] 0[color=#0000cc];[/color]
[color=#ff0000]sockaddr_in[/color] socketaddr[color=#0000cc];[/color]
[color=#ff0000]memset[/color][color=#0000cc]([/color][color=#0000cc]&[/color]socketaddr[color=#0000cc],[/color] [color=#ff00ff]'/0'[/color][color=#0000cc],[/color] [color=#0000ff]sizeof[/color][color=#0000cc]([/color][color=#ff0000]sockaddr_in[/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc];[/color]
socketaddr[color=#0000cc].[/color]sin_family [color=#0000cc]=[/color] [color=#ff0000]AF_INET[/color][color=#0000cc];[/color]
socketaddr[color=#0000cc].[/color]sin_port [color=#0000cc]=[/color] nPort[color=#0000cc];[/color]
socketaddr[color=#0000cc].[/color]sin_addr[color=#0000cc].[/color]s_addr [color=#0000cc]=[/color] inet_addr[color=#0000cc]([/color]szAddr[color=#0000cc])[/color][color=#0000cc];[/color]
[color=#0000ff]while[/color] [color=#0000cc]([/color]nConnectTimes [color=#0000cc]<[/color] nReconnectTimes [color=#0000cc]&[/color][color=#0000cc]&[/color] SOCKET_ERROR [color=#0000cc]=[/color][color=#0000cc]=[/color] nReturn[color=#0000cc])[/color]
[color=#0000cc]{[/color]
nReturn [color=#0000cc]=[/color] [color=#ff0000]connect[/color][color=#0000cc]([/color]m_socket[color=#0000cc],[/color] [color=#0000cc]([/color][color=#0000ff]struct[/color] [color=#ff0000]sockaddr[/color] [color=#0000cc]*[/color][color=#0000cc])[/color][color=#0000cc]&[/color]socketaddr[color=#0000cc],[/color] [color=#0000ff]sizeof[/color][color=#0000cc]([/color][color=#0000ff]struct[/color] [color=#ff0000]sockaddr[/color][color=#0000cc])[/color][color=#0000cc])[/color][color=#0000cc];[/color]
[color=#0000ff]if[/color] [color=#0000cc]([/color]nReturn [color=#0000cc]![/color][color=#0000cc]=[/color] SOCKET_ERROR[color=#0000cc])[/color]
[color=#0000cc]{[/color]
[color=#0000ff]return[/color] nReturn[color=#0000cc];[/color]
[color=#0000cc]}[/color]
[color=#0000ff]else[/color]
nConnectTimes[color=#0000cc]+[/color][color=#0000cc]+[/color][color=#0000cc];[/color]
[color=#0000cc]}[/color]
[color=#0000cc]#[/color][color=#ff0000]ifdef[/color] WIN32
[color=#ff0000]cout[/color] [color=#0000cc]<[/color][color=#0000cc]<[/color] [color=#0000cc]:[/color][color=#0000cc]:[/color]WSAGetLastError[color=#0000cc]([/color][color=#0000cc])[/color] [color=#0000cc]<[/color][color=#0000cc]<[/color] [color=#ff0000]endl[/color][color=#0000cc];[/color]
[color=#0000cc]#[/color][color=#ff0000]endif[/color]
[color=#0000ff]return[/color] SOCKET_ERROR[color=#0000cc];[/color]
[color=#0000cc]}[/color][/color][/font][/td][/tr][/table]
luojiafeng1984
[quote]原帖由 [i]flw[/i] 于 2008-6-20 17:32 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8629679&ptid=1165741][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
把socketaddr.sin_port = nPort;
改成socketaddr.sin_port = htons(nPort);
很久没有为大家回答过这么初级的问题了。
支持一把罗兄弟! [/quote]
哈哈,多谢多谢,但是我改了之后,居然还是10061错误,呵呵,我出去走走,哎,头晕了.