本文共 1454 字,大约阅读时间需要 4 分钟。
path必须是一个路径,而不是书上的“server_socket”!!!!!!!!!
#include#include #include #include #include #include int main(){ int sockfd; int len; struct sockaddr_un address; int ret; char ch = 'A'; sockfd = socket(AF_UNIX, SOCK_STREAM, 0); address.sun_family = AF_UNIX; strcpy(address.sun_path, "/tmp/sock_test"); ret = connect(sockfd, (struct sockaddr *)&address, sizeof(address)); if (ret == -1) { perror("oops: client1"); exit(1); } write(sockfd, &ch, 1); read(sockfd, &ch, 1); printf("char from server = %c\n", ch); close(sockfd); return 0;}
#include#include #include #include #include #include int main(){ int server_sockfd, client_sockfd; socklen_t server_len, client_len; struct sockaddr_un server_address; struct sockaddr_un client_address; unlink("/tmp/sock_test"); server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0); server_address.sun_family = AF_UNIX; strcpy(server_address.sun_path, "/tmp/sock_test"); server_len = sizeof (server_address); bind(server_sockfd, (struct sockaddr *)&server_address, server_len); listen(server_sockfd, 5); while(1) { char ch; printf("server waiting\n"); client_len = sizeof (client_address); client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len); read(client_sockfd, &ch, 1); ch++; write(client_sockfd, &ch, 1); close(client_sockfd); } return 0;}
转载地址:http://nzmai.baihongyu.com/