欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

androidsocket聊天室功能實(shí)現(xiàn)-創(chuàng)新互聯(lián)

前提概要

為藍(lán)田等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及藍(lán)田網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、網(wǎng)站建設(shè)、藍(lán)田網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

筆者很久之前其實(shí)就已經(jīng)學(xué)習(xí)過了socket,當(dāng)然也是用socket做過了聊天室,但是覺得此知識(shí)點(diǎn)比較一般,并無特別難的技術(shù)點(diǎn),于是也并未深究。
然而近期一個(gè)項(xiàng)目中對(duì)socket的使用卻讓筆者感覺socket強(qiáng)大無比,可以實(shí)現(xiàn)諸多功能。

個(gè)人Socket體驗(yàn)

項(xiàng)目主要有關(guān)智能家居,需要實(shí)現(xiàn)多臺(tái)手機(jī)同時(shí)對(duì)燈進(jìn)行操作(開或者關(guān)),主要需要實(shí)現(xiàn)以下幾點(diǎn):


1、進(jìn)入界面時(shí)獲取所有燈的狀態(tài)。
2、一臺(tái)手機(jī)改變了燈的狀態(tài),其他的手機(jī)上可以有所顯示。
3、硬件上改變了燈的狀態(tài)(手動(dòng)開關(guān)燈),所有手機(jī)上要有所顯示。

此功能如果使用HTTP讀取的方式實(shí)現(xiàn)就不太合適了。一方面客戶端與服務(wù)器讀取文件的同步性難以保證,即使保證了,也需要浪費(fèi)大量性能;另一方面,類似筆者的這種項(xiàng)目功能服務(wù)器和客戶端交互比較頻繁,對(duì)“即時(shí)性”要求也比較高,用HTTP不僅性能消耗太大,而且難以保證“即時(shí)性”。

但是使用Socket就很容易實(shí)現(xiàn)了,主要邏輯如下:


1、每次進(jìn)入界面與服務(wù)器建立Socket連接,并得到此時(shí)燈的狀態(tài)
2、每次需要對(duì)燈進(jìn)行操作的時(shí)候建立一個(gè)線程把燈的狀態(tài)傳遞給服務(wù)器,服務(wù)器接收到之后,把該狀態(tài)傳遞給每一個(gè)此時(shí)與服務(wù)器建立連接的客戶端。

此次體驗(yàn)也是讓筆者想起了學(xué)長之前做的一道筆試題,題目大概如下:

將淘寶網(wǎng)頁和手機(jī)版同時(shí)打開賬戶,手機(jī)停留在購物車界面,此時(shí)網(wǎng)頁上將某一物品加入購物車,如何設(shè)計(jì)才能讓手機(jī)自動(dòng)刷新購物車。


如果使用socket,相信是一個(gè)不錯(cuò)的思路。

好了,接下來進(jìn)入正題,展示socket聊天室demo。

效果(源碼在文章結(jié)尾)

主要思路

Android

1、進(jìn)入界面客戶端與服務(wù)器建立socket,同時(shí)此時(shí)開啟一個(gè)線程一直接收服務(wù)器發(fā)送來的消息。
2、每次點(diǎn)擊button獲取EditText中的字符串,調(diào)用子線程把字符串發(fā)送給服務(wù)器。

服務(wù)器

1、創(chuàng)建一個(gè)ArrayList存儲(chǔ)Socket。
2、循環(huán)接收請求訪問該端口的客戶端,接收到之后,把該socket存儲(chǔ)到ArrayList中,并且為每一個(gè)socket開啟一個(gè)線程用于通信。
3、每個(gè)socket的線程的邏輯如下:循環(huán)接收客戶端發(fā)來的消息,接收到之后,利用之前的ArrayList,發(fā)送到每一個(gè)客戶端。如果某個(gè)客戶端返回空值或者無法發(fā)送過去,那么表示該客戶端已經(jīng)斷開,就從ArrayList中移除。

代碼

(借鑒《Android瘋狂講義》)


Android

不要忘記在AndroidManifest里面加上訪問網(wǎng)絡(luò)的權(quán)限


MainActivity:

package com.example.double2.sockettesttwo;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

 private EditText etMain;
 private Button btnMain;
 private TextView tvMain;
 private ClientThread mClientThread;

 //在主線程中定義Handler傳入子線程用于更新TextView
 private Handler mHandler;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 etMain = (EditText) findViewById(R.id.et_main);
 btnMain = (Button) findViewById(R.id.btn_main);
 tvMain = (TextView) findViewById(R.id.tv_main);

 mHandler=new Handler() {
  @Override
  public void handleMessage(Message msg) {
  if (msg.what == 0) {
   tvMain.append("\n" + msg.obj.toString());
  }
  }
 };

 //點(diǎn)擊button時(shí),獲取EditText中string并且調(diào)用子線程的Handler發(fā)送到服務(wù)器
 btnMain.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  try {
   Message msg = new Message();
   msg.what = 1;
   msg.obj = etMain.getText().toString();
   mClientThread.revHandler.sendMessage(msg);
   etMain.setText("");
  } catch (Exception e) {
   e.printStackTrace();
  }
  }
 });


 mClientThread = new ClientThread(mHandler);
 new Thread(mClientThread).start();


 }
}

網(wǎng)頁名稱:androidsocket聊天室功能實(shí)現(xiàn)-創(chuàng)新互聯(lián)
文章出自:http://aaarwkj.com/article26/coipcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站維護(hù)網(wǎng)站制作、網(wǎng)站收錄、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
蜜臀视频网站在线观看| 成人国产精品三上悠亚久久 | 国产 亚洲 一区 二区| 中文字幕人妻系列东京热| 91精品国产自产永久在线| 韩国三级福利在线观看| 女同欲望一区二区三区久久| 日本人妻在线不卡视频| 懂色av中文字幕一区| 麻豆一精品传二传媒短视频| 久久国内午夜福利直播| 一区二区三区特黄色片| 一区二区三区四区自拍偷拍视频| 国产成人精品久久一区二区| 四虎在线观看最新入口| 亚洲成人国产一区二区| 国产av一区二区三区高潮蜜| 国产一级二级三级大胆视频| 久久东京热日韩精品一区| 久久精品国产亚洲av一| 亚洲精品亚洲一区亚洲二区| av中文字幕一二三区| 美腿丝袜清纯唯美亚洲另类| 粉嫩欧美一区二区三区| 日本中文字幕在线播放一区| 亚洲天堂成人综合在线| 中文字幕亚洲无级av| 亚洲高清无毛一区二区| 中国成熟女人毛茸茸视频| 日韩精品熟妻人女亚洲一区| 中文字幕乱码高清免费| 亚洲欧美午夜福利视频| 亚洲精品成人福利网站| 亚洲成人自拍在线视频| 日韩人妻中出中文字幕| 欧美成人精品欧美一级黄片| 欧美日韩国产亚洲免费| 人妻一少妇一区二区三区| 国内午夜福利精品视频| 国产模特一区二区三区| 在线亚洲av不卡一区二区三区|