0
這部分一週我一直在學習unix套接字,並且我有一個關於來自客戶端應用程序的connect()調用。Linux套接字(AF_UNIX)連接()失敗
connect()函數調用BLOCKING。它會阻塞,直到服務器應用程序創建它自己的套接字,將它綁定到相同的地址並開始監聽傳入連接?
在我的客戶,我有什麼是
printf(" abc %s\n", bind_path);
if((retval = connect(sh->sock_fd, (const struct sockaddr*)&sadr, sizeof(struct sockaddr_un))) == -1)
{
perror("123");
return SOCKET_ERROR;
}
return SOCKET_OK;
而我得到的是,
[email protected]:~/Desktop/week2_3_tasks/ipc_socket_exercise$ ./user_application_proc2_client.out
**** Process 2 (Client) Started
**** Process 2 PID : 7106
/tmp/sock_10
**** Socket connected successfully with handle 3
abc /tmp/sock_10
123: No such file or directory
**** Error connnecting socket to address .. exiting
如果我確保客戶端只有在服務器端代碼調用bind()(並且因此地址路徑文件將存在)後纔開始執行,該怎麼辦? – Ankit
當然,它也會阻止UNIX套接字,但只是很短的時間...... ;-) – alk
@alk通過這種推理,所有的函數調用都被阻塞,甚至是非阻塞的。 – immibis