2014-03-31 112 views
0

我目前正在開發一個客戶端/服務器程序。當我使用同一臺機器上運行的客戶端和服務器代碼時,我可以使用connect()函數(通過「localhost」)輕鬆地將客戶端連接到服務器。使用connect()函數連接到IP地址 - 套接字編程

但是,我想要完成的下一步是連接到外部設備。除此之外,我想直接連接到它的IP地址。有誰知道我可以如何在connect()函數中集成設備的IP地址?

+0

請發表您的代碼綁定到任何端口。 – Robert

+0

你能告訴你本地機器的工作代碼嗎? –

回答

1

你應該能夠填充int連接函數中的IP地址,就像填入「localhost」一樣。而不是給它的名字,你可以直接輸入IP(據我所知)。

名稱Localhost實際上也是一個IP:127.0.0.1如果您不知道,並且您的網絡會爲您更改此設置,那麼您不必記憶數字。

至於實際的連接:一定要打開你的服務器在它所在的網絡的調制解調器上使用的端口,否則你的客戶端將無法連接到它。

我希望這是你需要知道的。

+0

非常感謝您的回答!這正是我需要的。 – Adam

+0

沒問題:)高興地幫忙! – Dries

1

遠程主機及其端口的IP地址等信息捆綁在一個結構中(例如struct sockaddr_in serv_addr;),並且調用函數connect()來嘗試連接此套接字與套接字(IP地址和端口)的遠程主機。

所以,你可以給你的遠程主機IP作爲folllows

//Name the socket as agreed with server. 
    serv_addr.sin_family = AF_INET; 
    serv_addr.sin_addr.s_addr = inet_addr("10.10.1.34"); //you can give your server IP here 
    serv_addr.sin_port = htons(PORT); //your port here 

或者你可以如下

/* bind any port number */ 
    serv_addr.sin_family = AF_INET; 
    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); 
    serv_addr.sin_port = htons(0); 
+0

非常感謝您的回答! – Adam