可参考:https://blog.csdn.net/hzrandd/article/details/51028869
互斥实现代码如下:
int GetSynchronized(int input) {
unsigned int port = input;
if (input < 0) {
port = GetSynchronizedPort();
}
struct sockaddr_in serAddr;
bzero(&serAddr, sizeof(serAddr));
serAddr.sin_family = AF_INET;
serAddr.sin_addr.s_addr = htons(INADDR_ANY);
serAddr.sin_port = htons(port);
int fd = socket(PF_INET, SOCK_STREAM, 0);
if (fd < 0) {
return -1;
}
int ret = bind(fd, (struct sockaddr* )&serAddr, sizeof(serAddr));
if (ret != 0) {
close(fd);
}
return ret == 0 ? fd : -1;
}
网友评论