套接字编程中的服务器端的问题
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <strings.h>
int main(void)
{
int sockfd;
struct sockaddr_in serveraddr;
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){
printf("Error: server create socket failed!\n");
exit(0);
}
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
serveraddr.sin_port = htons(4057);
printf("begin bind");
if(bind(sockfd, (struct sockaddr *)&serveraddr,sizeof(struct sockaddr_in)) == -1){
printf("Error: bind socket failed!\n");
exit(0);
}
printf("bind success!");
if(listen(sockfd, 1024) == -1){
printf("Error: listen socket failed!\n");
exit(0);
}
int clientlen,accfd;
printf("sockfd is %d",sockfd);
if(accfd = accept(sockfd, NULL, NULL) == -1){
printf("Error: accept socket failed!\n");
exit(0);
}
char pop[100];
while(1){
read(accfd, pop, 100);
if(strlen(pop) > 0){
printf("%s\n",pop);
}
}
return 0;
}
说下问题,我的端口是随便设置的,问题是当我端口设置的不同的时候,中间那个printf语句有时候也不输出,我是在Ubuntu下面编的,我的程序我看和书上差不多,请问问题在哪?