// sunucu.c - Stream soket sunucu // Versiyon: 020106 // Baris Simsek, // http://www.acikkod.org #include #include #include #include #include #include #define PORT 2222 main(int argc, char *argv[]) { int sockfd, new_fd; struct sockaddr_in server_addr, client_addr; int client_size; char buffer[1024]; printf("%s %d portu uzerinde calismaya basladi...\n",argv[0],PORT); if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("- socket acilamadi"); exit(1); } memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.s_addr = INADDR_ANY; if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { perror("- port atamasi yapilamadi"); exit(1); } if (listen(sockfd, 5) != 0) { perror("- port dinlenemiyor"); exit(1); } while(1) { client_size = sizeof(struct sockaddr_in); if ((new_fd = accept(sockfd, (struct sockaddr *)&client_addr, &client_size)) == -1) { perror("- baglanti kabulu yapilamadi"); continue; } printf("%s sunucumuza baglandi...\n",inet_ntoa(client_addr.sin_addr)); memset(&buffer, 0, sizeof(buffer)); strcpy(buffer,"Merhaba "); strcat(buffer,(char *) inet_ntoa(client_addr.sin_addr)); strcat(buffer," :)\n"); if (send(new_fd,&buffer,sizeof(buffer), 0) == -1) perror("mesaj gonderilemedi"); close(new_fd); exit(0); } close(sockfd); while ( waitpid(-1,NULL,WNOHANG) > 0); }