diff --git a/poll/client.cpp b/poll/client.cpp
index ef2e901..24f4693 100644
--- a/poll/client.cpp
+++ b/poll/client.cpp
@@ -68,6 +68,7 @@ static void handle_connection(int sockfd)
 		}
 		if(pfds[1].revents & POLLIN)
 		{
+			fprintf(stderr, "echo:");
 			n = read(STDIN_FILENO, sendline, MAXLINE);
 			if(n == 0)
 			{
diff --git a/poll/server.cpp b/poll/server.cpp
index 2bf11bb..5062fea 100644
--- a/poll/server.cpp
+++ b/poll/server.cpp
@@ -106,12 +106,13 @@ void do_poll(int listenfd)
 		char buf[MAXLINE];
 		memset(buf, 0, MAXLINE);
 		int readlen = 0;
-		for(i = 1; i<maxi; i++)    //第0个是监听端口
+		for(i = 1; i<=maxi; i++)    //第0个是监听端口
 		{
 			if(clientfds[i].fd<0)
 				continue;
 			if(clientfds[i].revents & POLLIN)
 			{
+				fprintf(stdout, "msg client[%d] is:", i);
 				readlen = read(clientfds[i].fd, buf, MAXLINE);
 				if(readlen == 0)
 				{
@@ -119,7 +120,6 @@ void do_poll(int listenfd)
 					clientfds[i].fd = -1;
 					continue;
 				}
-				printf("msg is:");
 				write(STDOUT_FILENO, buf, readlen);
 				write(clientfds[i].fd, buf, readlen);  //发回去
 			}
diff --git a/select/client.cpp b/select/client.cpp
index b34db89..f08ed5c 100644
--- a/select/client.cpp
+++ b/select/client.cpp
@@ -42,7 +42,7 @@ int main(int argc, char* argv[])
 	while(1)
 	{
 		bzero(buffer, sizeof(buffer));
-		scanf("%s", buffer);
+		fgets(buffer, 1024, stdin);
 		int p = strlen(buffer);
 		buffer[p] = '\0';
 		send(connfd, buffer, 1024, 0);
diff --git a/select/server.cpp b/select/server.cpp
index 20584de..598a69a 100644
--- a/select/server.cpp
+++ b/select/server.cpp
@@ -13,9 +13,8 @@
 
 int main(int argc, char** argv)
 {
-	int serverfd, acceptfd;
+	int serverfd,;
 	struct sockaddr_in my_addr;    //服务端
-	struct sockaddr_in their_addr; //客户端
 	unsigned int sin_size, myport = 6666, lisnum = 10;
 	if((serverfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
 	{
@@ -77,9 +76,9 @@ int main(int argc, char** argv)
 		{
 			if(FD_ISSET(client_sockfd[i], &client_fdset))
 			{
-				printf("start recv from client[%d]:\n, i");
+				printf("start recv from client[%d]:\n", i);
 				ret = recv(client_sockfd[i], buffer, 1024, 0);
-				if(ret<0)
+				if(ret<=0)	//包含零
 				{
 					printf("client[%d] close\n", i);
 					close(client_sockfd[i]);
@@ -106,7 +105,7 @@ int main(int argc, char** argv)
 				bzero(buffer, 1024);
 				strcpy(buffer, "this is a server! welcome!\n");
 				send(sock_client, buffer, 1024, 0);    //把内容传给新来的客户端
-				printf("new connection client[%d] %s:%d\n", conn_amount, inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
+				printf("new connection client[%d] %s:%d\n", conn_amount-1, inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
 				bzero(buffer, sizeof(buffer));
 				ret = recv(sock_client, buffer, 1024, 0);
 				if(ret<0)
@@ -123,6 +122,12 @@ int main(int argc, char** argv)
 					printf("max connections!!!quit!!\n");
 					break;
 				}
+			}else{	//满连接处理
+				bzero(buffer, 1024);
+				strcpy(buffer, "Sorry, server connection is full.");
+				send(sock_client, buffer, 1024, 0);
+				bzero(buffer, sizeof(buffer));
+				close(sock_client);
 			}
 		}
 	}