进程间与网络通信技术全解析
1. 进程间通信基础
在网络通信中,构建服务器套接字地址结构是关键的一步。以下是相关代码示例:
receiver.sin_port=htons(atoi(argv[2])); /* (3) */ struct hostent *hp = gethostbyname(argv[1]); if ( hp == NULL ) { sprintf(buf, "%s: %s unknown host\n", argv[0], argv[1]); Quit(buf); } memcpy(&receiver.sin_addr, hp->h_addr, /* (4) */ hp->h_length);上述代码在检查命令行参数后,构建了服务器套接字地址结构receiver。接着,创建一个 Internet 数据报套接字,并使用它将buf中的消息发送到接收方的套接字地址:
int soc = socket(PF_INET, SOCK_DGRAM, 0); /* (5) */ int n = sendto(soc, buf, strlen(buf), 0, /* (6) */ (struct sockaddr *)&receiver, sizeof(receiver)); if ( n < 0 ) { Quit("sendto failed"); } printf("Sender: %d chars sent!\n