当前位置: 技术问答>linux和unix
accept函数没有返回
来源: 互联网 发布时间:2016-06-05
本文导语: 在linux下面写了一个很简单的socket server和client,结果client connect显示成功了,但server的accept却不返回,请大家帮忙看一下 简化后代码如下: srver端 #include #include #include #include #include #define SERPORT 9050 #define ...
在linux下面写了一个很简单的socket server和client,结果client connect显示成功了,但server的accept却不返回,请大家帮忙看一下
简化后代码如下:
srver端
#include
#include
#include
#include
#include
#define SERPORT 9050
#define BACKLOG 5
#define MAX_BUF_SIZE 100
void main()
{
int sockfd,clientfd,clientlen,datalen;
struct sockaddr_in sersock,clientsock;
char buf[MAX_BUF_SIZE+6];
char buf2[MAX_BUF_SIZE+1];
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("create socket failedn");
return;
}
memset(&sersock,0,sizeof(sersock));
memset(&clientsock,0,sizeof(clientsock));
sersock.sin_family=AF_INET;
sersock.sin_addr.s_addr=htons(INADDR_ANY);
sersock.sin_port=htons(SERPORT);
if(bind(sockfd,(struct sockaddr *)&sersock,sizeof(struct sockaddr))
简化后代码如下:
srver端
#include
#include
#include
#include
#include
#define SERPORT 9050
#define BACKLOG 5
#define MAX_BUF_SIZE 100
void main()
{
int sockfd,clientfd,clientlen,datalen;
struct sockaddr_in sersock,clientsock;
char buf[MAX_BUF_SIZE+6];
char buf2[MAX_BUF_SIZE+1];
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("create socket failedn");
return;
}
memset(&sersock,0,sizeof(sersock));
memset(&clientsock,0,sizeof(clientsock));
sersock.sin_family=AF_INET;
sersock.sin_addr.s_addr=htons(INADDR_ANY);
sersock.sin_port=htons(SERPORT);
if(bind(sockfd,(struct sockaddr *)&sersock,sizeof(struct sockaddr))