socket怎麼知道伺服器的ip
Ⅰ 怎麼獲取socket ip 地址
你是想知道代碼還是想了解原理,一般的C/S模型都由客戶端發出連接請求(客戶端在代碼中都是存有伺服器端的具體ip地址和埠信息(也就是伺服器端的INET協議族地址結構)的),當客戶端發送連接請求後,伺服器端通過accpet函數接收連接請求,accpet函數示例:accept(ServerSocket,(structsockaddr*)&from,&len)(from是一個INET協議族地址結構變數,(structsockaddr*)的作用是把INET協議族地址結構強制轉換為通用地址結構),accpet函數在接收連接的同時會把客戶端的具體ip和埠信息賦值給from,所以說客戶端socket連接的ip(非綁定的話客戶機隨機綁定ip和埠)是包含在連接報文數據里,伺服器端只有接收到客戶端發送的連接信息後,才會獲得客戶端的ip和埠信息,獲得具體ip的方式是通過函數,這個函數可以提取出IPv4地址結構中的點分十進制地址,函數用法:inet_ntoa(from.sin_addr)。
Ⅱ java 如何從收到的socket中取得IP
java中從Socket中獲取IP地址通過Socket的getInetAddress()方法即可獲得Socket中的Ip地址。其中Socket中還可以通過getLocalAddress()獲取Socket綁定的本地地址。
Ⅲ 如何獲得Socket連接客戶端的IP地址
如果伺服器端要獲取客戶端ip的話:
//假設socket(),bind(),listen()函數已經完成
addrlen=sizeof(client);
connetfd=accept(listenfd,(structsockaddr*)&client,&addrlen);
那麼client.sin_port 就是客戶端的埠
client.sin_addr.s_addr 就是客戶端的ip。
這兩個都是以網路位元組序來保存的,如果要printf的話需要先轉化為主機位元組序
Ⅳ mfc socket客戶端怎麼知道伺服器的ip
因為Client是通信的主動方,即發起通信的一端,因此通信之前Client必須已知Server的IP和埠號才行。
通常的C/S模式通信的做法是先為Server申請公網IP,然後在client編程時指明欲連接的Server的IP和埠號,這樣的client程序一旦安裝後就內置了Server的IP;
另一種做法是在client的執行界面預留輸入框,執行時允許用戶輸入Server的IP,然後實現通信,這兩種方式都必須事先知道server的IP信息才行。
Ⅳ 用socket怎麼獲取本機ip
server = new SocketServer(3389);
Socket s = server.accept();
s.getInetAddress().getHostAddress()
Ⅵ vb.net socket中的當客戶端連接Server的時候怎麼取得客戶端的IP地址
1.綁定的ip是伺服器的ip地址,伺服器是固定的,客戶端連接的是一個已知的伺服器端。
2.客戶端的話,連接到伺服器時,伺服器accept後,就可以獲得客戶端的連接信息,包括ip地址和埠。
我是學c的,在c語言中,socket->bind->listen->accept->....,在accept函數中有選項,如下caddr結構體中就存有accept後客戶端的ip地址
連接埠和傳輸方式等信息,clientsock[1]則為accept新的描述符,如你程序中soc2一樣
。
clientsock[1]
=
accept(sfd,(struct
sockaddr*)&caddr,&len);
vb中應該也有類時的函數,你網上好好找一下,或者看看相關書籍.