真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解Android基于TCP和UDP協(xié)議的Socket通信-創(chuàng)新互聯(lián)

本來想講一下基礎(chǔ)的網(wǎng)絡(luò)通信方面的知識點(diǎn),發(fā)現(xiàn)太枯燥乏味了,不過筆試中也經(jīng)常會問到這方面的問題,所以關(guān)于通信方面的知識點(diǎn),小編會放到面試中去,因為實(shí)戰(zhàn)中也就面試會用到這方面知識點(diǎn)

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供新邱企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為新邱眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

Android與服務(wù)器的通信方式主要有兩種,一是Http通信,一是Socket通信。兩者的大差異在于,http連接使用的是“請求—響應(yīng)方式”,即在請求時建立連接通道,當(dāng)客戶端向服務(wù)器發(fā)送請求后,服務(wù)器端才能向客戶端返回數(shù)據(jù)。


而Socket通信中基于TCP/IP協(xié)議的通信則是在雙方建立起連接后就可以直接進(jìn)行數(shù)據(jù)的傳輸,在連接時可實(shí)現(xiàn)信息的主動推送,而不需要每次由客戶端想服務(wù)器發(fā)送請求。而UDP則是提供無連接的數(shù)據(jù)報服務(wù),UDP在發(fā)送數(shù)據(jù)報前不需建立連接,不對數(shù)據(jù)報進(jìn)行檢查即可發(fā)送數(shù)據(jù)包

1.什么是Socket?

2.Socket通信模型:

Socket通信實(shí)現(xiàn)步驟解析:

Step 1:創(chuàng)建ServerSocket和Socket

Step 2:打開連接到的Socket的輸入/輸出流

Step 3:按照協(xié)議對Socket進(jìn)行讀/寫操作

Step 4:關(guān)閉輸入輸出流,以及Socket

好的,我們接下來寫一個簡單的例子,開啟服務(wù)端后,客戶端點(diǎn)擊按鈕然后鏈接服務(wù)端, 并向服務(wù)端發(fā)送一串字符串,表示通過Socket鏈接上服務(wù)器~

一、1.基于TCPSocket服務(wù)端的編寫:

服務(wù)端要做的事有這些:

Step 1 :創(chuàng)建ServerSocket對象,綁定監(jiān)聽的端口

Step 2 :調(diào)用accept()方法監(jiān)聽客戶端的請求

Step 3 :連接建立后,通過輸入流讀取客戶端發(fā)送的請求信息

Step 4 :通過輸出流向客戶端發(fā)送響應(yīng)信息 Step 5 :關(guān)閉相關(guān)資源

代碼實(shí)現(xiàn):

創(chuàng)建一個Java項目,然后把Java代碼貼進(jìn)去即可!這里可以用eclipse來寫服務(wù)端,as來寫安卓端

public class SocketServer {
 public static void main(String[] args) throws IOException {
  //1.創(chuàng)建一個服務(wù)器端Socket,即ServerSocket,指定綁定的端口,并監(jiān)聽此端口
  ServerSocket serverSocket = new ServerSocket(12345);
  InetAddress address = InetAddress.getLocalHost();
  String ip = address.getHostAddress();
  Socket socket = null;
  //2.調(diào)用accept()等待客戶端連接
  System.out.println("~~~服務(wù)端已就緒,等待客戶端接入~,服務(wù)端ip地址: " + ip);
  socket = serverSocket.accept();
  //3.連接后獲取輸入流,讀取客戶端信息
  InputStream is=null;
  InputStreamReader isr=null;
  BufferedReader br=null;
  OutputStream os=null;
  PrintWriter pw=null;
  is = socket.getInputStream();  //獲取輸入流
  isr = new InputStreamReader(is,"UTF-8");
  br = new BufferedReader(isr);
  String info = null;
  while((info=br.readLine())!=null){//循環(huán)讀取客戶端的信息
   System.out.println("客戶端發(fā)送過來的信息" + info);
  }
  socket.shutdownInput();//關(guān)閉輸入流
  socket.close();
 }
}

本文題目:詳解Android基于TCP和UDP協(xié)議的Socket通信-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://weahome.cn/article/ccgech.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部