iOS開發(fā)-Socket&XMPP(即使通訊)

Socket&XMPP

什么是Socket?

  • 1.HTTP 就是基于Socket實(shí)現(xiàn);
  • 2.網(wǎng)絡(luò)模型(為了網(wǎng)絡(luò)的可持續(xù)發(fā)展)網(wǎng)絡(luò)模型有OSI參考模型和TCP/IP參考模型OSI模型:局域網(wǎng);
  • 3.局域網(wǎng)
  • 網(wǎng)線-水晶頭-指針排序是規(guī)定
  • *IP地址可以對(duì)mac地址進(jìn)行綁定
  • 192.168.0.23 - 192.168.0.140 - 最好確保它們之間行走的距離短
  • *交換機(jī)也可以實(shí)現(xiàn)路由的功能
  • *三層交換機(jī) -帶來路由的功能
  • *OSI參考模型,只是為實(shí)現(xiàn)網(wǎng)絡(luò)交互建立一個(gè)參考標(biāo)準(zhǔn)
  • *TCP/IP參考模型是對(duì)OSI參考模型的簡化
  • socket屬于會(huì)話層
  • *http就是基于tcp數(shù)據(jù)傳輸
  • *UDP數(shù)據(jù)傳輸是不安全,對(duì)方收不收得都是不能保證
  • 4.192.168.1.23 域名
本地回環(huán)地址可以用來測試網(wǎng)卡有沒有問題
ping -c 4 127.0.0.1 如果ping不能,網(wǎng)卡壞了,或者網(wǎng)卡沒插好
ping -c 4 localhost的時(shí)候,返回的IP地址是127.0.0.1
?本地有個(gè)/etc/hosts文件
?更改/etc/hosts文件
>sudo vi /etc/hosts
>輸入 i
>輸入127.0.0.1 www.baidu.com
>按:輸入wq
>去除某一行 按 dd
?訪問域名的流程
TCP:傳輸協(xié)議(用什么樣的方式進(jìn)行交互)
HTTP:協(xié)議(數(shù)據(jù)格式)請(qǐng)求頭"content-type" content-size 編碼方式URL編碼
比如從廣州到北京 坐飛機(jī) 高鐵 火車(傳輸協(xié)議)
到了北京后,進(jìn)行交流用英語 國語,(HTTP)
在開發(fā)過程中,經(jīng)常發(fā)送HTTP請(qǐng)求,獲取服務(wù)器返回的數(shù)據(jù)
訪問不了數(shù)據(jù):問題可能是 "服務(wù)器沒有開啟"
http://192.168.0.11
  • 5.Socket(網(wǎng)絡(luò)服務(wù)的一種機(jī)制)
  • IO 輸入輸出流
  • 6.簡單聊天室(socket)
*實(shí)現(xiàn)登錄功能
http://192.168.1.1/login 實(shí)現(xiàn)登錄的功能:username passoword傳服務(wù)器
socket: 192.168.1.1:12345
登錄指令: iam:zhangsan
*實(shí)現(xiàn)發(fā)送聊天功能
發(fā)送聊天數(shù)據(jù)指令: msg:xxxxx
?開啟ChatSever服務(wù)
python 文件名

?http與socket的區(qū)別
>http是基本socket的實(shí)現(xiàn)
>http建立的連接稱為短連接
>socket建立的連接為長連接
>http傳輸?shù)臄?shù)據(jù)格式是已經(jīng)'規(guī)定好'
請(qǐng)求頭 content-type content-lengh
響應(yīng)頭
>socket實(shí)現(xiàn)數(shù)據(jù)傳輸是最原始,socket實(shí)現(xiàn)的數(shù)據(jù)傳輸格式可"自定義"
登錄:iam: 聊天消息msg:
>http和socket都是基本"tcp"
?SocketServer(C語言)

XMPP

CoreData Socket
QQ {iam:zhangsan} {msg:xxxxx}
?每一個(gè)公司對(duì)即時(shí)通訊的需求不一樣,所以每個(gè)公司都實(shí)現(xiàn)自己的即時(shí)通訊軟件
*配置服務(wù)端
1> 安裝數(shù)據(jù)庫mysql
雙擊mysql-5.6.12-osx10.7-x86_64.dmg
> 配置下mysql的用戶名的密碼
默認(rèn)mysql有一個(gè)root帳號(hào),密碼為空
>mysql 登錄
mysql -u root -p
>修改root的密碼123456
mysqladmin -u root password "123456"
>查看數(shù)據(jù)庫的命令
mysql> show databases;
2>安裝xmpp服務(wù)端(openfire)
-openfire它是基于java實(shí)現(xiàn)
-如果要安裝openfire 電腦必須安裝java jdk
"怎么判斷你當(dāng)前的電腦有沒有安裝jdk"
在終端使用java -version 提示沒有安裝jdk,那就要手動(dòng)安裝
安裝jdk 雙擊jdk-7u45-macosx-x64.dmg文件
3>配置數(shù)據(jù)庫表
訪問 /usr/local/目錄
將openfire/resouces/databases的openfire_mysql.sql文件放置桌面
安裝mysqlworkbench
建立連接
創(chuàng)建一個(gè)數(shù)據(jù)庫(openfire)為openfire服務(wù)
往openfire數(shù)據(jù)庫導(dǎo)入openfire_mysql.sql腳本文件
4>配置openfire的管理后臺(tái)
teacher.local
openfire管理控制臺(tái) 用戶名是admin 密碼:123456
5>使用"信息"登錄的時(shí)候,輸入用戶名的時(shí)候
一個(gè)完成的登錄名稱 =(用名 + @ + 服務(wù)器名稱(teacher.local))
>使用spark如果運(yùn)行錯(cuò)誤,安裝'JavaForOSX2014-001.dmg'文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容