1. 伺服器如何獲取客戶端的IP地址,並與客戶端建立TCP連接
客戶端的IP自動獲取,關鍵要看客戶端的IP是由誰來分配的,如果都是有ISP提供的那麼伺服器利用IP去連接客戶端就不太可能。可以嘗試用下面兩種思路解決:
1、能否讓客戶機主動連接伺服器。
2、使用動態DNS。讓每個客戶機都申請一個動態域名,無論它的IP怎樣變,當改變以後都會到DNS伺服器進行注冊,然後伺服器使用主機的名字訪問客戶端。
2. linux建立TCP伺服器後,TCP客戶端與伺服器連接成功後,怎樣獲取客戶端的MAC地址
我認為你是從 socket中取不到這部分的信息的.
你得再操作 arp的緩存部分才行. ARP那部分如果在特殊情況,很亂套.比如有攻擊或是IP地址設置有沖突啥地.
---
詳細的C語言怎麼操作ARP緩存我不太清楚. 但你如果想知道.就得查一下這部分怎麼做了.
高層的socket操作是得不到的.
只有直連網段的計算機有MAC地址信息.經過路由來的數據包.取不到.