C
1while(1){ 2 sin_size = sizeof(struct sockaddr_in); 3 new_sockfd = accept(sockfd, (struct sockaddr *)&client_addr, &sin_size); 4 if(new_sockfd == -1) 5 printf("Error Connection\n"); 6 7 printf("PORT of Server : %d, Connection from client : %s\n", ntohs(client_addr.sin_port),inet_ntoa(client_addr.sin_addr)); 8 send(new_sockfd, fer, strlen(fer), 0); 9 recv_length = recv(new_sockfd, &buffer, 1024, 0) - 2; 10 while(recv_length > 0){ 11 printf("Recieved : %d Byte packet\n", recv_length - 2); 12 printf(">>>"); 13 for(i = 0; i <= recv_length - 2; i++){ 14 if(!isspace(buffer[i])) 15 printf("%c", buffer[i]); 16 } 17 printf("\n"); 18 19 for(i = 0; i<= 1024; i++) 20 buffer[i] = ' '; 21 recv_length = recv(new_sockfd, &buffer, 1024, 0); 22 }
上記のような普通のソケットプログラムを作ってみました。
省略しています。
最初は
printf("Recieved : %d Byte packet\n", recv_length - 2);
printf(">>>");
printf("%s\n", buffer);
とやっていたのですが、これではうまく表示されなかったので、
スペースで埋めて、文字列をクリアしてみたのです。
が・・・
これでは、クライアント側から you will make me happyと送信すると、
.>>> youwillmakemehappy
となってしまいます。
どうしたら、よいでしょうか??
クライアントから送信された文字列を「普通に」サーバー側に表示させたいのです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/27 00:36