p12-24.c

来自「SUN Solaris8平台下进程间通信」· C语言 代码 · 共 43 行

C
43
字号
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/socket.h>#include <sys/un.h>#include "err_exit.h"#define SERVER  "/tmp/serversocket"#define CLIENT  "/tmp/mysocket"#define MAXMSG  512int make_named_socket(const char *name);int main (int argc, char **argv){    int sock, i;    char message[MAXMSG];    struct sockaddr_un name;    size_t size;    int nbytes;    if (argc < 2)  /* 命令行未给出要发送的消息 */        exit(0);    /* 创建套接字 */    sock = make_named_socket(CLIENT);    /* 初始服务套接字地址结构*/    name.sun_family = AF_UNIX;    strcpy(name.sun_path, SERVER);    size = strlen(name.sun_path) + sizeof(name.sun_family);    for (i = 1; i<argc; i++){        /* 发送数据报 */        nbytes = sendto(sock, argv[i], strlen(argv[i])+1, 0,                        (struct sockaddr *)&name, size);        if (nbytes < 0)            err_exit("sendto(client)");        /* 等待回答 */        nbytes = recvfrom(sock, message, MAXMSG, 0, NULL, NULL);        if (nbytes < 0)            err_exit("recfrom (client)");        /* 打印出收到的回答 */        printf("Client: got message: %s\n", message);    }    /* 清理 */    remove (CLIENT);    close (sock);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?