vc++ socket编程上的异常,求大神教

vc++ socket编程上的错误,求大神教
#include "stdafx.h"
#include <winsock2.h>
#include<iostream>
using namespace std;

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


int _tmain(int argc, _TCHAR* argv[])
{
WSADATA w;
WORD ver=MAKEWORD(2,2);
WSAStartup(ver,&w);

SOCKET server;
SOCKADDR_IN addr;
addr.sin_family=AF_INET;
addr.sin_port=(htons(12345));
addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

server=socket(AF_INET,SOCK_STREAM,0);
bind(server,(SOCKADDR*)&addr,sizeof(addr));
listen(server,10);

SOCKET client;

cout<<"服务端已启动!\n";
while(TRUE)
{
    if(client=accept(server,0,0)!=INVALID_SOCKET)
{
cout<<"有客户尝试连接\n";
if( send(client,"Password",sizeof("Password"),0)!=SOCKET_ERROR)

cout<<"有客户请求连接,正等待客户输入验证信息\n";

else 
{
 
 cout<<"发送失败!\n"<<WSAGetLastError ();
}
}
}



return 0;
}

客户端部分代码:


char buff[20];

if(recv(server,buff,sizeof(buff),0)!=SOCKET_ERROR)
/*if语句不成立,还导致未响应
*/
{
MessageBox("lianjiechenggong");
if(strcmp(buff,"Password")==0)
{
    CPASSWORD password;
                    password.DoModal();
}

}
else{
CString str;
str.Format("%d",WSAGetLastError());
MessageBox(str);
}
}
}
两边的错误码分别是(客户端)1 0 0 5 4 —W S A E C O N N R E S E T
和1 0 0 3 8 —W S A E N O T S O C K
 我刚学,也许问题很简单,希望大家不要笑话,能够体验新手有问题百思不得其解的心情,
     给以宝贵的意见,谢谢大家vc++ socket编程上的异常,求大神教
Visual C++ socket

------解决方案--------------------
客户端10054应该是你连接的地址不对,建议参考这的socket例子:
http://download.****.net/detail/geoff08zhang/4571358
------解决方案--------------------
地址没错都是本机的,那就检查下端口是否设置正确,客户端和服务器的是否对应
------解决方案--------------------
额。。。貌似你这里可能理解错了
send(client,"Password",sizeof("Password"),0)这句有错 10038

客户端recv(server,buff,sizeof(buffer),0)这句有错 10054

sizeof貌似是返回"Password"这个数据的类型的大小的,也就是说你接收的长度错了,你调试下看看

比如我一般这样写while ( recv(sockfd, text,512, 0) > 0)
text是char text[512]
第三个参数的意思是接收512个char参数
------解决方案--------------------
if((client=accept(server,0,0))!=INVALID_SOCKET)
注意运算符优先级, !=优先级高于=