ios使用xmppframework 來實現基本的聊天功能
1.使用xmppstream連線openfire
需要賬戶,密碼和伺服器位址埠一般為5222
-(bool)connect
if (userid == nil || pass == nil)
//設定使用者
[xmppstream setmyjid:[xmppjid jidwithstring:userid]];
//設定伺服器
[xmppstream sethostname:server];
[xmppstream sethostport:5222];
//密碼
password = pass;
//連線伺服器
nserror *error = nil;
if (![xmppstream connectwithtimeout:xmppstreamtimeoutnone error:&error])
return yes;
}-(void)setupstream
2,傳送訊息,通過xml來傳送
xmppframework主要是通過kissxml來生成xml檔案
//生成文件
nsxmlelement *body = [nsxmlelement elementwithname:@"body"];
[body setstringvalue:message];
//生成xml訊息文件
nsxmlelement *mes = [nsxmlelement elementwithname:@"message"];
//訊息型別
[mes addattributewithname:@"type" stringvalue:@"chat"];
//傳送給誰
[mes addattributewithname:@"to" stringvalue:[nsstring
stringwithformat:@"%@@localhost",chatwithuserid]];
[mes addattributewithname:@"from" stringvalue:[nsstring stringwithformat:@"%@@localhost",myyueyueid]];
//組合 將body作為message的子節點
[mes addchild:body];
//傳送訊息
[[self xmppstream] sendelement:mes];
3.接受訊息
在xmppstream連線過程中有**方法,可以在收到訊息後發回
//收到訊息
- (void)xmppstream:(xmppstream *)sender didreceivemessage:(xmppmessage *)message
nsstring *msg = [[message elementforname:@"body"] stringvalue];
nsstring *from = [[message attributeforname:@"from"] stringvalue];
nsmutabledictionary *dict = [nsmutabledictionary dictionary];
[dict setobject:msg forkey:@"msg"];
[dict setobject:from forkey:@"sender"];
//訊息接收到的時間
[dict setobject:[statics getcurrenttime] forkey:@"time"];
·····
//··dict 加入資料庫··或顯示在介面·· 根據狀態決定
·····
}
python udp的應用 ,多執行緒實現聊天功能
之前我們一起實現過單執行緒的udp聊天功能,但是並不實用,這裡我們用多執行緒重新寫下 如下 import socket import threading defprint menu 顯示選單 print 請輸入你要進行的操作 1 傳送資料 接收資料 退出 defrecv data udp socke...
計網實驗C C Socket實現全雙工聊天功能
clion要在cmakelists.txt加一條link libraries ws2 32 codeblock要link對應的檔案 遇到一堆疑難雜症,順便學習一下多執行緒 效果圖 伺服器端程式設計的步驟 1 載入套接字型檔,建立套接字 wsastartup socket 2 繫結套接字到乙個 ip ...
python實現excel lookup功能
import pandas as pd sx customer 0409 pd.read excel r e lusiru 202004 20200402隨心降額名單篩選 sx customer 0409.xlsx 讀取原始資料 fx variable pd.read excel r e lusir...