自己写的C++程序,关于socket的使用,怎么提示close 未定义啊,代码如下
#include<stdio.h>#include<stdlib.h>#include<errno.h>#include<string.h>#include<winsoc...
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<winsock.h>
#define SERVPORT 3333 /*服务器监听端口号*/
#define BACKLOG 10
void main()
{
int sockfd,client_fd;
/*sock_fd:监听cocket;client_fd:数据传输socket*/
struct sockaddr_in my_addr; /*本机地址信息*/
struct sockaddr_in remote_addr; /*客户端地址信息*/
char *msg="You are Welcome!\n";
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
/*创建面向连接的socket*/
printf("socket 创建出错!");
exit(1);
}
my_addr.sin_family=AF_INET; //各种参数的初始化
my_addr.sin_port=htons(INADDR_ANY);
my_addr.sin_addr.s_addr=INADDR_ANY;
memset(&(my_addr.sin_zero),0,8);
//绑定端口
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){
printf("bind 出错");
exit(1);
}
if(listen(sockfd,BACKLOG)==-1){
printf("listen 出错");
exit(1);
}
while(1){
int sin_size=sizeof(struct sockaddr_in);
//接收用户连接
if((client_fd=accept(sockfd,(struct sockaddr *)&remote_addr,&sin_size))==-1){
printf("accept 出错");
continue;
}
if(send(client_fd,msg,strlen(msg),0)==-1){
printf("send 出错");
close(client_fd);
exit(0);
}
close(client_fd);
}
} 展开
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<winsock.h>
#define SERVPORT 3333 /*服务器监听端口号*/
#define BACKLOG 10
void main()
{
int sockfd,client_fd;
/*sock_fd:监听cocket;client_fd:数据传输socket*/
struct sockaddr_in my_addr; /*本机地址信息*/
struct sockaddr_in remote_addr; /*客户端地址信息*/
char *msg="You are Welcome!\n";
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
/*创建面向连接的socket*/
printf("socket 创建出错!");
exit(1);
}
my_addr.sin_family=AF_INET; //各种参数的初始化
my_addr.sin_port=htons(INADDR_ANY);
my_addr.sin_addr.s_addr=INADDR_ANY;
memset(&(my_addr.sin_zero),0,8);
//绑定端口
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){
printf("bind 出错");
exit(1);
}
if(listen(sockfd,BACKLOG)==-1){
printf("listen 出错");
exit(1);
}
while(1){
int sin_size=sizeof(struct sockaddr_in);
//接收用户连接
if((client_fd=accept(sockfd,(struct sockaddr *)&remote_addr,&sin_size))==-1){
printf("accept 出错");
continue;
}
if(send(client_fd,msg,strlen(msg),0)==-1){
printf("send 出错");
close(client_fd);
exit(0);
}
close(client_fd);
}
} 展开
2个回答
展开全部
windows 下,关闭socket的函数不是close,而是closesocket,改成closesocket就可以了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询