求救,关于套接字
#include <winsock2.h>
#include <stdio.h>
BOOL InitWinsock();
void main()
{
SOCKET socket1;
InitWinsock();
struct sockaddr_in server;
int len =sizeof(server);
server.sin_family=AF_INET;
server.sin_port=htons(8000); ///server的监听端口
server.sin_addr.s_addr=inet_addr("10.0.0.21"); ///server的地址
socket1=socket(AF_INET,SOCK_DGRAM,0);
while (1)
{
Sleep(500);
char buffer[1024]="\0";
printf("input message\n");
scanf("%s",buffer);
if (strcmp(buffer,"bye")==0)
break;
int s=send(socket1,buffer,sizeof buffer,0);
//int s=sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&server,len);
if (s!=SOCKET_ERROR)
{
if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&server,&len)!=SOCKET_ERROR)
printf("Server:%s\n",buffer);
else
closesocket(socket1);
}
}
}
BOOL InitWinsock()
{
int Error;
WORD VersionRequested;
WSADATA WsaData;
VersionRequested=MAKEWORD(2,2);
Error=WSAStartup(VersionRequested,&WsaData); //启动WinSock2
if(Error!=0)
{
return FALSE;
}
else
{
if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
{
WSACleanup();
return FALSE;
}
}
return TRUE;
}
/* 我刚刚学套接字
不知道 send 和sendto 有什么区别?
我试验用sendto函数服务端可以收到,但是send就不行了,大家帮忙看一下有什么问题?
*/