當前位置:首頁 » 手機網路 » 移動網路socket通訊
擴展閱讀
手機製作qq炫舞頭像軟體 2025-06-20 01:23:23
啥叫手機網路設置 2025-06-20 01:23:14

移動網路socket通訊

發布時間: 2022-05-16 03:16:56

1. socket是什麼意思

socket(也叫套接字)最初是在Unix系統上開發的網路通信的介面。
後來微軟等公司將它移植到了windows下,當然原來unix系統下的還是好用的。
對於socket可以這樣理解:
它就是一個函數庫,裡麵包括大量的函數和相應的數據結構,已經實現好了。
它支持網路通信。
程序開發人員可以通過閱讀相關的函數文檔,了解函數的使用方法,進行網路的編程。
兩種形式的socket:流式套接字,對應與TCP協議。
數據報套接字,對應與UDP協議。

2. 移動app 為什麼選擇socket通信而不選擇http

手機客戶端 與伺服器通信,通常是CS模式,當然是用普通socket了,HTTP其實也是socket,只不過他是基於TCP的短連接,功能有限,除了可以剔除暫時不用的鏈路外,優點不明顯,相反缺點多:
HTTP採用明文傳輸,安全方面不行,socket可以採用自定義協議,所以更加安全.
HTTP通常是短連接,沒法收到伺服器主動推送的消息,socket則可以,通常是常連接
HTTP傳輸比較佔用流量,而用socket則只是結構體對齊,省去了變數的名詞
HTTP解析速度慢,而用socket則通常不需要解析,只是簡單的判斷消息類型,即可.

當然用HTTP開發速度快,很容易就完成一個APP界面

3. http和socket通信的區別

其實這樣比是有問題的,http實際上是一種應用級協議,常用的是http1.0和http 1.1協議。而socket則是一個連接,它直接在鏈路層上進行連接。在該連接的基礎之可以實現各種應用級協議。如通過socket可以實現ftp協議、http、https、NetBIOS、Win、Iron等等,甚至於可以實現藍牙(藍牙連接在.net中不被支持,是因為socket所需參數的協議簇中枚舉中沒有藍牙,但可以直接通過數據,實現與藍牙的通信)。所以http是一個協議與Socket連接是沒有可比性的,在.net中,可實現http協議的連接。
正是因為socket功能的強大,所以對於socket編程一般用於特殊一點的協議或高性能網路要求的情況下才使用這種編程。如果是一般的tcp/ip,在.net中已經實現了其功能封裝。例如WebClient實現http/https,再如.net 4.5新增的HttpClient也可以實現同的功能。但這些功能較為狹窄,那麼在.net中的可插入協議是一個中庸的選擇。目前實現的有HttpWebRequest/FtpWebRequest。並且可繼承WebRequest實現自己的可插入協議。

也就是說,如果我們與httpClient或WebClient與Scoket相比的話,WebClinet/HttpClient是實現特定功能的Socket封裝,它減少開發周期,但底層還是Socket。如果WebRequest與Socket相比的話,WebRequest是實現特定協議的Socket封閉,並可實現可插入協議。換句來說,WebClient是完完全全的一個通信類,而WebRequest則算是一個協議開發類(它已經實現了FtpWebRequest及HttpWebRequest),而Socket則是底層開發。

4. 如何用socket實現android手機與手機之間的通信

有兩種方案:

1、在PC機上建立伺服器,手機與手機之間的通信通過伺服器進行中轉

2、一部手機作為伺服器,另一部手機作為客戶端接入該手機

一般是第一種方案

示例代碼:

1、pc端:
serverSocket=newServerSocket(5648);//在5648埠進行偵聽
Socketsk=serverSocket.accept();//如果有接入,則創建對應的socket;

2、手機端:
socket=newSocket("tobacco5648.xicp.net",5648);//連接socket

3、消息輸入輸出:
pw=newPrintWriter(socket.getOutputStream());//消息輸出
pw.println("發送消息");
pw.flush();

br=newBufferedReader(newInputStreamReader(socket.getInputStream()));//消息接收
while((str=br.readLine())!=null){
//接收消息
}

5. 怎麼通過socket或者wifi實現通信

沒有關系,socket通信編程對物理網路媒介類型不敏感。

分兩種情形說明:
1. 在設備系統內部,socket不需要通過網路進行通信,所以系統內部的socket通信不依賴上網方式。
2. 在不同設備之間,socket通信一般基於IPv4/IPv6,而IP的一大功能就是屏蔽了網路層以下(包括鏈路層和物理層)的不同特徵,使應用程序在使用IP報文進行通信時在任何網路媒介上都使用相同的方式。socket在IP之上,更不需要考慮物理網路是有線還是無線等因素。

socket編程,只需要掌握幾個socket介面的使用,理清socket通信對象就可以了。

6. 什麼是Socket簡單點,通俗易懂的

網路上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket。

7. 我想實現在手機間通過socket實現通信功能(不需要伺服器做中轉什麼的),可以實現嗎要怎麼做呢

手機之間互相socket如果是內網之間是沒問題的,如果是廣域網存在很多問題,涉及到網路穿透,直接連接是萬萬不行的。必須通過中間伺服器,實現了網路穿透連接,然後手機和手機才能直連。具體你可以查查網路 tcp 穿透。

8. 在網路環境不好的情況下,為什麼手機端的socket通信比較卡,但是http的通信比較流暢呢

1.socket通信是手機端到手機端的通信,要經過伺服器來回轉發數據。
2.http的通信是手機到web伺服器端通信,就直接來回發送數據。
3.socket通信要看兩端手機信號好壞來決定傳輸速度。
4.http的通信的WEB伺服器是有線的再到無線,有線速度快?還是無線的快呢?
解釋的不好,希望能幫助你。

9. java Socket通信原理

具體如下:

首先socket 通信是基於TCP/IP 網路層上的一種傳送方式,我們通常把TCP和UDP稱為傳輸層。其中UDP是一種面向無連接的傳輸層協議。UDP不關心對端是否真正收到了傳送過去的數據。

如果需要檢查對端是否收到分組數據包,或者對端是否連接到網路,則需要在應用程序中實現。UDP常用在分組數據較少或多播、廣播通信以及視頻通信等多媒體領域。

在這里我們不進行詳細討論,這里主要講解的是基於TCP/IP協議下的socket通信。

socket是基於應用服務與TCP/IP通信之間的一個抽象,他將TCP/IP協議裡面復雜的通信邏輯進行分裝。

服務端初始化ServerSocket,然後對指定的埠進行綁定,接著對埠及進行監聽,通過調用accept方法阻塞。

此時,如果客戶端有一個socket連接到服務端,那麼服務端通過監聽和accept方法可以與客戶端進行連接。

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。

Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。