为什么bind()函数返回值为-1?
#include <WINSOCK2.H>#pragma comment(lib,"ws2_32.lib")
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <malloc.h>
#include <stdarg.h>
int main()
{
int Sockfd,BINE,CON,LIN,ACP,SEN,LEN,CLIENT;
struct sockaddr_in my_addr;
struct sockaddr_inremote_addr;
Sockfd=(AF_INET,SOCK_STREAM,0);//调用Socket函数//
if(Sockfd==-1)
{
printf("Socket错误!");//错误提示//
return(0);
}
my_addr.sin_family=AF_INET;//网络协译TCP/IP//
my_addr.sin_port=htons(0);//本地端口为2300//
my_addr.sin_addr.s_addr=INADDR_ANY;//自动填入本机IP//
BINE=bind(Sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr));//调用bind函数,使socket与本地一个端口相关联//
if(BINE==-1)
{
printf("bind函数发生错误!\n");
return(0);
}
LIN=listen(Sockfd,20);//调用listen()函数监听端口//
if(LIN==-1)
{
printf("监听端口失败!");//出错提示//
return(0);
}
CLIENT=sizeof(struct sockaddr);
ACP=accept(Sockfd,(struct sockaddr*)&my_addr,&CLIENT);//accept()函数,用于接受客户端的连接请求//
if(ACP==-1)
{
printf("接受请求失败!");
return(0);
}
char *msg="hello ,socket!";//要发送的内容//
LEN=strlen(msg);//将字符转化为数字//
SEN=send(ACP,msg,LEN,0);//调用send()函数,发送信息//
if(SEN==-1)
{
printf("发送失败!");
closesocket(ACP);//断开连接//
return(0);
}
closesocket(ACP);
}