TCP/IP ソケット通信(クライアント側)

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

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

void main(void)
{
    char *hostName = "localhost";
    int port = 12345;
    
    struct sockaddr_in serverAddr;
    
    serverAddr.sin_addr.s_addr = inet_addr(hostName);
    if (serverAddr.sin_addr.s_addr == -1) {
        struct hostent *host = gethostbyname(hostName);
        if (host == NULL) {
            printf("Error: Failed to gethostbyname.\n");
            return;
        }
        memcpy(&serverAddr.sin_addr.s_addr,
               *host->h_addr_list, sizeof(serverAddr.sin_addr.s_addr));
    }
    printf("Address: %s\n", inet_ntoa(serverAddr.sin_addr));
    
    serverAddr.sin_port = htons(port);
    serverAddr.sin_family = AF_INET;
    
    int clientSocket = socket(AF_INET, SOCK_STREAM, 0);
    if (clientSocket == -1) {
        printf("Error: Failed to create a socket.\n");
        return;
    }
    
    if (connect(clientSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) == -1) {
        printf("Error: Failed to connect.\n");
        return;
    } 
    
    char buffer256;
    ssize_t readSize = recv(clientSocket, buffer, 2560);
    
    ssize_t writtenSize = send(clientSocket, "test"40);
    
    close(clientSocket);
}

コメントを書く


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

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