学习C++求助

[复制链接]
查看11 | 回复2 | 2010-12-17 20:46:43 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include "string.h"
#include
#pragma comment(lib,"ws2_32.lib")
void showip();
int main(int argc, char* argv[])
{
printf("\n\t本例常演示接收广播报文\n");
WSADATA wsaData;
int iResult=WSAStartup(MAKEWORD(2,2),&wsaData);
if(iResult!=NO_ERROR)
{
printf("Error at WSAStartup()\n");
return 1;
}
SOCKET ListenSocket;
ListenSocket=socket(AF_INET,SOCK_DGRAM,0);
if(ListenSocket==INVALID_SOCKET)
{
printf("Error at socket():%d\n",WSAGetLastError());
WSACleanup();
return 1;
}
BOOL yes=TRUE;
int ret=::setsockopt (ListenSocket,SOL_SOCKET,SO_BROADCAST,(char FAR *)&yes,sizeof(BOOL));
if(ret==SOCKET_ERROR)
{
return 1;
}
char hostName[128];
hostent*localHost;
char* localIP;
int i;
if(gethostname(hostName,128)==0)
{
localHost=gethostbyname(hostName);
for(i=0;localHost!=NULL&&localHost->h_addr_list!=NULL;i++)
{
localIP=inet_ntoa(*(struct in_addr *)localHost->h_addr_list);
printf("The Local IP is: %s\n",localIP);
}
}
sockaddr_in service;
service.sin_family =AF_INET;
service.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
service.sin_port =htons(1256);
if(bind(ListenSocket,(SOCKADDR*)&service,sizeof(service))==SOCKET_ERROR)
{
printf("bind() failed.\n");
closesocket(ListenSocket);
WSACleanup();
return 1;
}
char recvBuffer[2048];
SOCKADDR_IN addrClient;
memset(&addrClient,0,sizeof(addrClient));
::memset (recvBuffer,0,2048);
int len=sizeof(SOCKADDR);
while(1)
{
if(recvfrom(ListenSocket,recvBuffer,100,0,(SOCKADDR *)&addrClient,&len)==SOCKET_ERROR)
{return 1;}
printf("%s %s\n",inet_ntoa(addrClient.sin_addr ),recvBuffer);
}
closesocket(ListenSocket);
printf("Test Over!!!\n");
WSACleanup();
return 0;
}
void showip()
{
char hostName[128];
hostent*localHost;
char* localIP;
int i;
if(gethostname(hostName,128)==0)
{
localHost=gethostbyname(hostName);
for(i=0;localHost!=NULL&&localHost->h_addr_list!=NULL;i++)
{
localIP=inet_ntoa(*(struct in_addr *)localHost->h_addr_list);
printf("The Local IP is: %s\n",localIP);
}
}
}
帮我注释这个代码,越详细越好,学习C++有段时间了,但是只能看懂个大概。我想从这个代码入手写个自己要用的程序。

回复

使用道具 举报

千问 | 2010-12-17 20:46:43 | 显示全部楼层
其实也没什么,就是socket的基本格式,都是固定的可以找下socket编程的资料,相信你会读懂的
回复

使用道具 举报

千问 | 2010-12-17 20:46:43 | 显示全部楼层
从结构化和面向对象两个方面入手
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行