Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // TCP/IP SERVER
- #include <stdio.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define MAX_CLIENT_NUMBER 8
- int main(int argc, char *argv[])
- {
- int sockfd, newsockfd, port, clilen;
- char buffer[256];
- struct sockaddr_in serv_addr, cli_addr;
- int n;
- if(argc < 2){
- puts("[-] Error: No port provided");
- return -1;
- }
- sockfd = socket(AF_INET, SOCK_STREAM, 0); // socket()
- if(sockfd < 0){
- puts("[-] Error: Opening socket");
- return -1;
- }
- memset((char*) &serv_addr, 0, sizeof(serv_addr));
- port = atoi(argv[1]);
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = INADDR_ANY;
- serv_addr.sin_port = htons(port);
- if(bind(sockfd, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) < 0){ // bind()
- printf("[-] Error: Binding");
- }
- listen(sockfd, MAX_CLIENT_NUMBER); // listen()
- newsockfd = accept(sockfd, (struct sockaddr*) &cli_addr, &clilen); // accept()
- if(newsockfd < 0){
- puts("[-] Error: Accept");
- return -1;
- }
- memset(buffer, 0, 256);
- n = read(newsockfd, buffer, 255); // read()
- if(n < 0){
- puts("[-] Error: Reading");
- return -1;
- }
- printf("Message: %s\n", buffer);
- n = write(newsockfd, "Message received!", 17); // write()
- if(n < 0){
- puts("[-] Error: Write");
- return -1;
- }
- if(shutdown(sockfd, 2) < 0){ // close()
- puts("[-] Error: Close");
- return -1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement