|
|
各位大侠,我做了一个程序,但在绑定的时候出现错误,我安装linux时没有选择作为服务器,会不会是这个问题,我把程序贴出来,大家有时间就帮我看看吧,不胜感激
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#define MAXLINE 4096
int main(void)
{
int sockfd;
char *sz_hostname;
char **pptr_hostname;
char str[16];
int iaddrtype;
int ibindok;
struct sockaddr_in servaddr;
struct hostent *ptr_hostname;
sz_hostname="HAHA";
ptr_hostname=gethostbyname(sz_hostname);
if(ptr_hostname==NULL)
{
printf("host name error!");
return 0;
}
else printf("host name: %s \n",ptr_hostname->h_name);
pptr_hostname=ptr_hostname->h_addr_list;
for(;*pptr_hostname!=NULL;pptr_hostname++)
printf("address: %s\n",inet_ntop(ptr_hostname->h_addrtype,*pptr_hostname,str,sizeof(str)));
if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)
{
printf("socket error!");
return 0;
}
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(18);
//servaddr.sin_addr.s_addr=inet_addr("192.168.1.44");
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
printf("Server IP: %s\n",inet_ntop(AF_INET,&servaddr.sin_addr,str,sizeof(str)));
ibindok=bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
if(ibindok!=0)
{
printf("bind error!\n");
return 0;
}
return 1;
} |
|