|
我的一段服务器程序为什么不能接收数据?#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD ( 1,1 );
err = WSAStartup ( wVersionRequested, &wsaData );
if (err != 0)
{printf ("can't find winsock32.dll");
return;
}
struct sockaddr_in server,client;
err = socket (AF_INET,SOCK_DGRAM,0);
server.sin_family = AF_INET;
server.sin_port = htons(88);
server.sin_addr.s_addr = inet_addr ("192.168.0.2");
if ( bind ( err, (struct sockaddr *)&server, sizeof(server)) != 0 )
{printf("bind failed!%d",WSAGetLastError());
return;
}
char recvBuffer[512];
client.sin_family = AF_INET;
client.sin_port = htons(66);
client.sin_addr.s_addr = inet_addr("192.168.0.2");
int fromlen, recvlen;
fromlen = sizeof(client);
recvlen = recvfrom ( err, (char *)&recvBuffer, 512, 0, (struct sockaddr *)&client, &fromlen );
if( recvlen == SOCKET_ERROR )
{
printf( "Data receive failed \n" );
return ;
}
else
{printf( "Receive Message = %s \n", recvBuffer );}
closesocket(err);
}
客户端是可以发送的
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1,1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err!=0 )
{ printf("can't find winsock32.dll");
return;
}
struct sockaddr_in client,server;
err = socket (AF_INET,SOCK_DGRAM,0);
client.sin_family = AF_INET;
client.sin_port = htons(66);
client.sin_addr.s_addr = inet_addr("192.168.0.2");
if (bind(err,(struct sockaddr *)&client,sizeof(client))!=0)
{ printf("bind failed!%d",WSAGetLastError());
return;
}
server.sin_family = AF_INET;
server.sin_port = htons(88);
server.sin_addr.s_addr = inet_addr("192.168.0.2");
char sendBuffer[512];
int sendlen;
sendlen = sendto(err,(const char * )&sendBuffer,512,0,(struct sockaddr * )&server,sizeof(server));
if ( sendlen == SOCKET_ERROR)
{printf ("send failed!");
}
else{printf ("send succeed!%s\n",sendBuffer);}
closesocket (err);
} |
|