tcpip伺服器客戶端
Ⅰ TCP/IP 使用Socket 實現客戶端與伺服器端通信
對於伺服器,你先創建一個套接字(socket),然後bind綁定一個套接地址,然後你在用listen,此時你的伺服器會一直阻塞在這,處於監聽狀態,檢查是否有客戶端來connect,一旦有的話,你的伺服器就會accept。
所以,是你的伺服器是處於監聽狀態,監聽是否有客戶端,然後由客戶端來連接伺服器,伺服器接受客戶端的連接,而不是伺服器去連接客戶端。
Ⅱ 如何實現一個tcp/udp客戶端和伺服器,以及它們之間是如何交互
你先要了解一下網路協議。你這說的是傳輸層的協議,TCP和UDP都是固定埠的。網路分成好多層的,每層的埠都不一樣,每一層將會把低一層的數據封裝打包,這個就是所謂的協議,不同功能的軟體和硬體處理自己這層的埠和數據,然後再傳遞給上層。每一層協議不相關,也不需要知道和理解傳來的是什麼,只負責自己的規則就好,傳過來的都當成數據處理打包。RTSP是應用層的協議,在TCP和UDP之上層,可以自定義埠,一般是554。系統自己會處理TCP和UDP數據,socket都已經實現好了,然後再將RTSP的協議數據通過埠554給你客戶端。所以你不用太關心TCP和UDP層的東西,如果你發燒無聊,也可以自己實現TCP和UDP協議,抓取數據,得到RTSP的數據包,就是RTSP協議層部分了。獲取到RTSP的協議部分,通過RTSP的協議,分析出命令和數據部分,這個就是基本解析過程。
Ⅲ 想實現一個簡單的基於TCP/IP協議的客服端/伺服器通訊
不是會新建個socket用來真正的通信(傳輸內容),那麼這時有沒有tcp/ip協議有通信埠是客戶端去訪問伺服器埠時所攜帶的源埠,這兩個埠號是不一樣
Ⅳ TCP伺服器如何檢測客戶端的IP和埠
你熟悉socket API不?如果不熟悉的話建議先看看socket編程的文檔。這是鏈接地址:http://msdn.microsoft.com/en-us/library/ms738545(v=VS.85).aspx
一般服務端的sokcet API調用順序為:
bind() // 設置服務埠
listen() // 等待客戶端連接
accept() // 與客戶端建立連接
請參考:http://msdn.microsoft.com/en-us/library/ms737526(v=VS.85).aspx
這是accept函數的原型:
SOCKET accept(
__in SOCKET s,
__out struct sockaddr *addr,
__inout int *addrlen
);
第二個參數, addr,包含了客戶端的IP地址和埠。你可以認為這就是客戶端的IP和埠。但是,要注意的是這個IP不一定就完全等價於客戶端本機的埠。比如:客戶端在一個區域網里,IP地址是192.168.1.100,然後它通過ADSL路由連接到internet,再通過internet連接到服務端。這個時候,服務端獲得的客戶端IP地址就可能是那個ADSL路由的IP。
Ⅳ tcp/ip 伺服器 與多個客戶端連接嗎
當然是支持多客戶了,要不每個網站只能一個用戶訪問了。目前互聯網全是基於TCP/IP協議運行的,而多用戶的實現,則是依據每個連接的數據包中的一個16位的數字。詳細的,可以研究一下TCP/IP協議,對每一層的數據包的結構定義,這樣很多問題都有答案了,這些是學習或了解網路的基本。
有問題歡迎交流,滿意請採納。
Ⅵ tcp客戶端和伺服器的關系
答: TCP客戶端負責進行服務的請求,而伺服器進行請求的響應。一個TCP伺服器可以同時為多個TCP客戶端進行服務。在進行通信之前必須先建立連接。
Ⅶ TCP伺服器怎麼獲得客戶端socket連接的IP
你是想知道代碼還是想了解原理,一般的C/S模型都由客戶端發出連接請求(客戶端在代碼中都是存有伺服器端的具體ip地址和埠信息(也就是伺服器端的INET協議族地址結構)的),當客戶端發送連接請求後,伺服器端通過accpet函數接收連接請求,accpet函數示例:accept(ServerSocket,(struct sockaddr *)&from,&len) (from是一個INET協議族地址結構變數,(struct sockaddr *)的作用是把INET協議族地址結構強制轉換為通用地址結構) ,accpet函數在接收連接的同時會把客戶端的具體ip和埠信息賦值給from,所以說客戶端socket連接的ip(非綁定的話客戶機隨機綁定ip和埠)是包含在連接報文數據里,伺服器端只有接收到客戶端發送的連接信息後,才會獲得客戶端的ip和埠信息,獲得具體ip的方式是通過函數,這個函數可以提取出IPv4地址結構中的點分十進制地址,函數用法:inet_ntoa(from.sin_addr)。
Ⅷ tcp伺服器和tcp客戶端的區別
首先要確保兩機器能互相ping通(網路確實暢通才)服務端綁定IP估計用127
Ⅸ 如何讓伺服器(A)TCP/IP埠與客戶端(B)TCP/IP埠一致如何
客戶端訪問資源,其自身的埠是隨機的,但是目標地址的埠是可以指定的,比如網站WEB是80埠。
所以說伺服器的對外發布的服務埠是可以指定的,但是客戶端的埠則是隨機參數,指定埠對於客戶端而言沒有意義
Ⅹ 公網的TCP客戶端與內網的TCP伺服器連接如何實現
被動發起的。你訪問伺服器時,把自己的IP和埠信息已經提交到伺服器了,之後伺服器再按你這個信息,返回數據。
請給我的回答採納,謝謝!