我在做Linux下的Socket編程。有一個問題。 我們如何允許特定的IP地址連接到我們的服務器。Linux中的套接字 - serv_addr.sin_addr.s_addr = INADDR_ANY;
例如:
- 允許10.0.0.1
- 拒絕10.0.0.1
我特別談到代碼此行,我們填補INADDR_ANY我們SOCKADDR_IN結構
serv_addr.sin_addr.s_addr = INADDR_ANY;
僅供參考守則
休息:
struct sockaddr_in serv_addr;
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY; // Here's my question!!
serv_addr.sin_port = htons(portno);
我有點生疏,但不是'serv_addr'服務器套接字?如在,它是你用來聽的TCP套接字?在你參考的那一行中,這只是設置要監聽的接口的IP地址,而不是連接的內容。 – austin
@austin其實'serv_addr'是包含服務器信息的結構。端口號,允許的IP地址,TCP/IP v4/v6等。 是的,它允許所有連接被接受。我想要的是限制到特定的IP。 Btw,Listening和Accepting在這一步之後完成。 – Safeer
Austin的絕對正確:如果serv_addr用於綁定偵聽套接字,則不能在此處放置對等方的IP地址。 –