TCP/IP ソケット通信(サーバ側)

Cocoaに関するヌマタメモ
2008年11月29日 22:31
#include <stdio.h>

#include <netinet/in.h>
#include 
<strings.h>
#include 
<sys/socket.h>
#include 
<unistd.h>

void main(void)
{
    int port = 12345;
    
    int serverSocket = socket(AF_INET, SOCK_STREAM, 0);
    if (serverSocket == -1) {
        printf("Error: Failed to create a socket.\n");
        return;
    }
    
    int opt = 1;
    if (setsockopt(serverSocket, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) != 0) {
        printf("Error: Failed to set socket option.\n");
        return;
    }
    
    struct sockaddr_in serverAddr;
    bzero(&serverAddr, sizeof(serverAddr));
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port = htons(port);
    
    if (bind(serverSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) == -1) {
        printf("Error: Failed to bind.\n");
        return;
    }
    
    if (listen(serverSocket, SOMAXCONN) == -1) {
        printf("Error: Failed to listen.\n");
        return;
    }
    
    printf("Ready to accept.\n");
    
    struct sockaddr_in clientAddr;
    int length = sizeof(clientAddr);
    int clientSocket = accept(serverSocket, (struct sockaddr *) &clientAddr, &length);
    
    char buffer256;
    ssize_t readSize = recv(clientSocket, buffer, 2560);
    
    ssize_t writtenSize = send(clientSocket, "test"40);
    
    close(clientSocket);
    
    close(serverSocket);
}

コメントを書く


トラックバックはありません。

トラックバックURL: http://numata.designed.jp/mt-tb.cgi/43