通信ip伺服器
⑴ 如何使用TCP/IP與伺服器進行通信
使用socket進行網路編程的最簡單方式是使用NSStream。NSStream類對流操作進行了抽象,包括對各種流數據的讀和寫:內存流、網路流或文件流。當然,通過NSStream也可以與伺服器進行通信。 無論是通過NSStream向伺服器寫數據,還是從NStream對象中讀取伺服器數據,都是一件簡單的事情。
在Mac OS X中,使用NSHost和NSStream與伺服器進行連接的代碼如下:
NSInputStream *iStream;
NSOutputStream *oStream;
uint portNo = 500;
NSURL *website = [NSURLURLWithString:urlStr];
NSHost *host = [NSHost hostWithName:[websitehost]]; [NSStream getStreamsToHost:host
port:portNo
inputStream:&iStream
outputStream:&oStream];
NSStream的getStreamsToHost:port:inputStream:outputStream:方法用於連接伺服器並創建一對輸入輸出流用於向伺服器讀寫數據。問題是iOS中並沒有這個方法。因此上述代碼無法用於iPhoneapp中。
要解決這個問題,需要為NSStream增加新的類別以增加getStreamToHost:Port:inputstream:outputStream:方法。在Xcode中新建文件NSStreamAdditions.m。然後在NSStreamAdditions.h中編寫代碼如下:
@interface NSStream (MyAdditions)
+ (void)getStreamsToHostNamed:(NSString*)hostName
port:(NSInteger)port
inputStream:(NSInputStream **)inputStreamPtr
outputStream:(NSOutputStream **)outputStreamPtr;
@end
在NSStreamAdditions.m文件中加入下列代碼。
#import "NSStreamAdditions.h"
@implementation NSStream (MyAdditions)
+ (void)getStreamsToHostNamed:(NSString*)hostName
port:(NSInteger)port
inputStream:(NSInputStream **)inputStreamPtr
outputStream:(NSOutputStream **)outputStreamPtr
{
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
⑵ TCP/IP是指什麼
TCP是網路傳輸協議,IP是網路地址協議,TCP/IP是一個四層的分層體系結構。高層為傳輸控制協議,它負責聚集信息或把文件拆分成更小的包。這些包通過網路傳送到接收端的TCP層,接收端的TCP層把包還原為原始文件。低層是網際協議,它處理每個包的地址部分,使這些包正確的到達目的地。網路上的網關計算機根據信息的地址來進行路由選擇。即使來自同一文件的分包路由也有可能不同,但最後會在目的地匯合。 TCP/IP使用客戶端/伺服器模式進行通信。TCP/IP通信是點對點的,意思是通信是網路中的一台主機與另一台主機之間的。TCP/IP與上層應用程序之間可以說是「沒有國籍的」,因為每個客戶請求都被看做是與上一個請求無關的。正是它們之間的「無國籍的」釋放了網路路徑,才是每個人都可以連續不斷的使用網路。
⑶ 伺服器和IP是什麼,怎麼理解,兩者有什麼關系
根dns就是互聯網主要的dns,全球共有13個,其他像電信dns或其他dns屬於鏡像dns伺服器,都是從根dns更新的。你說的根dns可能不是互聯網的那個根dns
⑷ 一個固定IP,兩台伺服器,伺服器之間怎麼通信且外網要都能遠程這兩台伺服器
一個固定IP是什麼意思。只提供了這一個IP上外網嘛?
伺服器埠根據你網路情況。
兩個大體方案。
1》因為web伺服器肯定是要被用戶訪問的,外網IP分配給 web伺服器。再來一根網線利用私有地址連接 WEB伺服器和資料庫伺服器。這樣,可以通過直接遠程web後,再遠程資料庫伺服器。
要求:1『WEB伺服器需要雙網卡。一般伺服器都是都是多個網口的。。。
2』資料庫伺服器是否需要外部數據來源,因為這種方式下,資料庫伺服器不能直接與外部通信,如果需要數據通道。要經過WEB伺服器跳轉。
--------------------------------------------------------------------------------------------
2》加交換機(路由器同理),外網PI作為進口,再給兩台伺服器分配私有地址。連接交換機,交換機空配即可實現網路共同,但這種情況下,因為伺服器IP地址段和外網不在同一段,如果需要遠程到伺服器,系統自帶的MSTSC功能無法實行,需要使用teamviewer一類的第三方軟體。
問題點:WEB伺服器因為是另一個地址段,被訪問時需要將固定IP的地址映射到 WEB伺服器的私有地址上。
⑸ ip伺服器是什麼意思
IP是英文 Internet Protocol的縮寫,意思是「網路之間互連的協議」,也就是為計算機網路相互連接進行通信而設計的協議。在網際網路中,它是能使連接到網上的所有計算機網路實現相互通信的一套規則,規定了計算機在網際網路上進行通信時應當遵守的規則。任何廠家生產的計算機系統,只要遵守 IP協議就可以與網際網路互連互通。正是因為有了IP協議,網際網路才得以迅速發展成為世界上最大的、開放的計算機通信網路。因此,IP協議也可以叫做「網際網路協議」。
——IP是怎樣實現網路互連的?各個廠家生產的網路系統和設備,如乙太網、分組交換網等,它們相互之間不能互通,不能互通的主要原因是因為它們所傳送數據的基本單元(技術上稱之為「幀」)的格式不同。IP協議實際上是一套由軟體程序組成的協議軟體,它把各種不同「幀」統一轉換成「IP數據報」格式,這種轉換是網際網路的一個最重要的特點,使所有各種計算機都能在網際網路上實現互通,即具有「開放性」的特點。
——那麼,「數據報」 是什麼?它又有什麼特點呢?數據報也是分組交換的一種形式,就是把所傳送的數據分段打成 「包」,再傳送出去。但是,與傳統的「連接型」分組交換不同,它屬於「無連接型」,是把打成的每個「包」(分組)都作為一個「獨立的報文」傳送出去,所以叫做「數據報」。這樣,在開始通信之前就不需要先連接好一條電路,各個數據報不一定都通過同一條路徑傳輸,所以叫做「無連接型」。這一特點非常重要,它大大提高了網路的堅固性和安全性。
——每個數據報都有報頭和報文這兩個部分,報頭中有目的地址等必要內容,使每個數據報不經過同樣的路徑都能准確地到達目的地。在目的地重新組合還原成原來發送的數據。這就要IP具有分組打包和集合組裝的功能。
——在實際傳送過程中,數據報還要能根據所經過網路規定的分組大小來改變數據報的長度,IP數據報的最大長度可達 65535個位元組。
——IP協議中還有一個非常重要的內容,那就是給網際網路上的每台計算機和其它設備都規定了一個唯一的地址,叫做「IP 地址」。由於有這種唯一的地址,才保證了用戶在連網的計算機上操作時,能夠高效而且方便地從千千萬萬台計算機中選出自己所需的對象來。
——現在電信網正在與 IP網走向融合,以IP為基礎的新技術是熱門的技術,如用IP網路傳送話音的技術(即VoIP)就很熱門,其它如IP over ATM、IPover SDH、IP over WDM等等,都是IP技術的研究重點。(IP全球通網)
IPv6是"Internet Protocol Version 6"的縮寫,也被稱作下一代互聯網協議,它是由IETF小組(Internet工程任務組Internet Engineering Task Force)設計的用來替代現行的IPv4(現行的IP)協議的一種新的IP協議。
我們知道,Internet的主機都有一個唯一的IP地址,IP地址用一個32位二進制的數表示一個主機號碼,但32位地址資源有限,已經不能滿足用戶的需求了,因些Internet研究組織發布新的主機標識方法,即IPv6。在RFC1884中(RFC是Request for Comments Document的縮寫。RFC實際上就是Internet有關服務的一些標准),規定的標准語法建議把IPv6地址的128位(16個位元組)寫成8個16位的無符號整數,每個整數用四個十六進制位表示,這些數之間用冒號(:)分開,例如:3ffe:3201:1401:1280:c8ff:fe4d:db39
1.基本地址格式
現在的IP網路使用32位地址,以點分十進製表示,如172.16.0.0。地址格式為:IP地址=網路地址+主機地址 或 IP地址=主機地址+子網地址+主機地址。
網路地址是由Internet權力機構(InterNIC)統一分配的,目的是為了保證網路地址的全球唯一性。主機地址是由各個網路的系統管理員分配。因此,網路地址的唯一性與網路內主機地址的唯一性確保了IP地址的全球唯一性。
2.保留地址的分配
根據用途和安全性級別的不同,IP地址還可以大致分為兩類:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中隨意訪問。私有地址只能在內部網路中使用,只有通過代理伺服器才能與Internet通信。
一個機構或網路要連入Internet,必須申請公用IP地址。但是考慮到網路安全和內部實驗等特殊情況,在IP地址中專門保留了三個區域作為私有地址,其地址范圍如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
使用保留地址的網路只能在內部進行通信,而不能與其他網路互連。因為本網路中的保留地址同樣也可能被其他網路使用,如果進行網路互連,那麼尋找路由時就會因為地址的不唯一而出現問題。但是這些使用保留地址的網路可以通過將本網路內的保留地址翻譯轉換成公共地址的方式實現與外部網路的互連。這也是保證網路安全的重要方法之一。
⑹ 如何實現tcp/ip單個用戶與單個伺服器通信以及多個用戶與單個伺服器的通信連接
同學您好,這個問題我分開解答哈!①單個用戶與單個伺服器通信採用Socket進行連接,用戶方面的流程是:1.新建套接字Socket s;2.確定伺服器IP地址和埠號 addr = 192.168.1.12 port = 8080;3.對本機地址進行顯式或隱式綁定(一般採用隱式綁定故這步可以忽略)4.開啟與伺服器的連接connect(s,addr);5.進行數據交互傳輸 send recv;6.通信結束 關閉套接字closesocket(s);
伺服器方面的流程是:1.新建套接字Socket s;2.確定本地IP和埠號(不能隱式綁定)addr = 192.168.1.12 port = 8080;3.對本地IP和埠進行綁定bind(s,addr);4.對埠進行監聽listen(s);5.接收一個連接 newsock = accept(s);6.進行數據交互傳輸 send recv;7.通信結束 關閉套接字closesocket(s)。
②單個伺服器與多個用戶的通信連接,用戶端與①中流程相同,伺服器端第5步接收了一個連接之後開始不同。伺服器在接收了一個連接之後,便新建一個套接字newsock,此時要開啟一個子線程來負責處理與該用戶機的數據傳輸,而主線程繼續監聽埠創建新的子線程來與多個用戶進行連接。C下可以採用createThread函數,
CreateThread(NULL,0,然後在chat函數中進行recv和send即可
chat,//子線程函數入口
&newsock,//傳給子線程的參數
0,&Tid);