今天終於除錯通了socket一對一的聊天,每次傳送連線請求後,將使用者名稱傳送到socket中去,然後將使用者名稱和新建的socket存到map中,然後根據使用者名稱來確定接收方是誰,以實現一對一的聊天功能。
上圖是我看部落格的時候截下來的圖,這就是大概思路了。具體今天的實現,我寫了乙個介面,上邊有伺服器ip位址,用來連線伺服器。
以及傳送方,接收方,訊息內容。傳送的時候,將這三條資料連線起來,末尾加"\n",以便readline()函式讀取內容。然後傳送訊息。三個按鈕的單擊事件如下所示,介面在後邊會貼出來。
1然後我開了三個安卓模擬器,兩個eclipse,電腦記憶體飆到了百分之八十多,測試完成後趕緊關了,一頓卡,大概如下所示,三個使用者為10001,10002,10003,我讓10001->10002,10002->10003,10003->10001,這樣互相傳送訊息,實現的效果如下圖所示://*****************************主要工作********************************
2 socket socket = null
;3 bufferedreader br = null
;4 bufferedwriter bw = null;5
protected
void
connect() catch
(unknownhostexception e1) catch
(ioexception e1)
22try
27 } catch
(ioexception e)
31return
null;32
}333435
@override
36protected
void
onprogressupdate(string... values)
42super
.onprogressupdate(values);43}
44};
45reader.execute();
4647}48
protected
void
login() catch
(ioexception e)
5758}59
protected
void
send() catch
(ioexception e)
7576 }
然後貼出我的serversocket中的logcat內容,這些訊息是封裝成了json字串來傳送的。
訊息的格式為fromid+"\n"+content+"\n"+toid+"\n",這樣就組成了乙個完整的字串,readline()函式遇到"\n"就會停止,每次將對應的變數解析出來,然後服務端再去傳送訊息就可以了。
好了,有什麼問題還會來這裡補充,(僅供自己學習參考0.0)
Python基礎socket一對一聊天室
伺服器端 coding utf 8 author kele time 2018 12 27 19 13 匯入socket import socket,threading 建立乙個socket物件 server socket.socket socket.af inet,socket.sock stre...
一對一聊天實現步驟
2 在qqchat 中new message,將message中的內容傳送給伺服器oos。問題來了,那麼我怎麼樣取得客戶端的socket呢?把qqclientconserver裡面的s做成靜態的。那麼qqchat 也可以使用了。3 serconclientthread,輸入流ois接收來自qqcha...
python 製作一對一聊天
用到的參考資料 我用的是pyqt5做使用者介面,用 eric6 簡單點,拖拽的,pyqt5 教程 一對一聊天源 首先這兩個方法返回值不同。exec 有返回值,show 沒有返回值。其次這兩個方法的作用也不同。呼叫show 的作用僅僅是將widget及其上的內容都顯示出來,控制權即刻返回給呼叫函式。而...