关于soclet网络编程中send的一个问题!高手帮忙一下!!!
程序代码:
void SocketNet(HWND hwnd) { WSADATA wsaData; //初始化Socket库 WSAStartup(MAKEWORD(2,2),&wsaData); //创建一根电线 SOCKET sock = socket(AF_INET, SOCK_STREAM,IPPROTO_TCP); if(sock!=INVALID_SOCKET) { MessageBox(hwnd,TEXT("套接字创建成功!"),"",MB_OK); } SOCKADDR_IN sa; sa.sin_family=AF_INET; //设置电线连接服务器端的端口 sa.sin_port = htons(1500); //主机名得到ip地址 sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//本地主机 if(connect(sock,(SOCKADDR *)&sa,sizeof(sa))==SOCKET_ERROR) { ShowError(); return; } //做的事情 char buffer[256]; ZeroMemory(buffer,sizeof(buffer)/sizeof(char)); //接收服务器发送的消息 recv(sock,buffer,256,0); ListBox_InsertString(GetDlgItem(hwnd,IDC_LISTINFO),-1,buffer); int i=send(sock,TEXT("服务器,收到没?"),16,0);---------------------》经过检查测试 TCHAR s[256]; ---------------------》发现返回值i的值总是等于 ZeroMemory(s,sizeof(s)/sizeof(char)); ---------------------》send里面的字符串长度一样(这里是16) wsprintf(s,"%i",i); ---------------------》我认为send处于阻塞状态,为什么无法 MessageBox(hwnd,s,"",MB_OK); ---------------------》发送到服务端??????? closesocket(sock); WSACleanup(); }高手帮忙看看上面的问题,
我在服务端用recv接收这个send发送的这段字符,客户端发送不成功,服务端recv返回值为0,表明接收成功了!;
为什么客户端发布出去?????????