关于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,表明接收成功了!;
为什么客户端发布出去?????????






