⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p12-25.c

📁 SUN Solaris8平台下进程间通信
💻 C
字号:
#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdio.h>#include "err_exit.h"#define MAXMSG  1024int main(void){    int sock,size,nbytes;    struct sockaddr_in name;    char message[MAXMSG];    /* 创建数据报套接字 */    sock = socket(AF_INET, SOCK_DGRAM, 0);    if (sock < 0)         err_exit("opening datagram socket");    /* 用通配符命名该套接字 */    bzero(&name,sizeof(name));    name.sin_family = AF_INET;    name.sin_addr.s_addr = htonl(INADDR_ANY);    name.sin_port = htons(0);    if (bind(sock, &name, sizeof(name)))         err_exit("binding datagram socket");    /* 查出并打印系统赋给的端口值 */    size = sizeof(name);    if (getsockname(sock, &name, &size))         err_exit("getting socket name");    printf("Socket has port #%d\n", ntohs(name.sin_port));    while(1){        /* 从套接字读数据 */        size = sizeof(name);        nbytes = recvfrom(sock, message, MAXMSG, 0,(struct sockaddr *)&name, &size);        if (nbytes < 0)            err_exit("recfrom (server)");        /* 打印出收到的消息 */        printf("Server got message: %s\n", message);        /* 将消息返回给发送者 */        nbytes = sendto(sock, message, nbytes, 0,(struct sockaddr *)&name, size);        if (nbytes < 0)             err_exit("sendto(server)");    }}

⌨️ 快捷键说明

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