日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QQ项目

發布時間:2024/1/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QQ项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QQ第一部分:

1.數據庫
  每一個QQ賬戶必須有
?  a、 state:是否上線的狀態
?  b、 IP:正在上線的主機的IP
?  c、 port:UDP端口號(用這個和別的好友通訊)
?  注:TCP連接時,在服務器端有端口號,這個端口號是在上線連接時要寫入的,而客戶端
?  是隨機的分配一個端口。兩個客戶間進行通訊時用的是無連接的UDP,每個客戶在數據庫
?  都有標注的UDP端口號。
2.主外鍵關系
?  自連接,在同一張數據庫表中,主鍵又作為外鍵,(邏輯上是兩個實體,
?  實際上是一個實體)叫自連接。
?  注:本項目中好友對照表分開建表,更清晰。如果在一張表中,
?  記錄會冗余的。
3.加好友的原理

  111——222
?   222——111
?  加好友:兩邊都同意,加兩條記錄。
  ?刪除,加黑名單是同理。


4.QQ運行原理
?
    ?server—TCP(雙向,可靠,事先建立持續連接)—thread1(socket、I/O)——Client1
??????
?????????  ?UDP連接(單向,不可靠,不用事先建立連接)
??????
?????????  Client2
5.TCP連接
?  TCP是持久連接,必須要用死循環來打通連接。
?  UDP是非持久連接,用數據報來傳遞的,不用事先建立連接。

6.幾個注意的點
?  a.字節流在寫入時不用換行,字符流必須要換行
  ?b.服務器端是先讀后寫,客戶端是先寫后讀。

QQ第二部分:

1.有別于前邊方法的幾個點
?a. 連接數據庫時:
??db.properties:是一個文件,以(鍵值對)的形式存儲的數據庫信息文件
??項目部署的時候,要把項目的.class文件給客戶,用戶名和密碼(公司自己的
??信息自己設定)都在里邊,項目中要用這些信息,可以通過方法引用,
??然后用戶也可以自己改變數據庫類型,端口號等,項目仍可正常的使用。
?b. 加背景時。
??加背景,因為QQ用戶在注冊時選的QQ圖像是隨機的,所以以前的固定路徑不能
??使用,現在在ImgPanel的構造時,給你一個path變量,即在生成圖像時用的是
??動態的圖片地址。初始化后顯示為不同的圖像。
?c. 布局管理器:box(我自己感覺像div選擇器一樣)
??盒子布局管理器,相當于容器,以前的是容器按照布局管理器的格式加內容,
??box可以直接添加內容,還能設置格式,在各個box之間添加空白位置,進行更合理
??的布局。
??布局方式:1.橫向布局。2.縱向布局。
?d. CommonUse.componetsBounds:為了居中對齊,調用工具類。
?
?e.以前寫頁面是在一個工程里邊,現在分為兩個工程,邏輯更清晰,
?頁面要寫在客戶端,數據庫要寫在服務器端,頁面獲取了數據,交給
?socket和I/O,通過網絡給服務器端,然后服務器端獲取數據,分析,從
?數據庫取出相應的數據,然后同樣通過socket和I/O返還給客戶端。

?f. 單寫一種業務不能滿足用戶的需求,所以現在要求,服務器必須能夠識別
?用戶的當前的業務(注冊或者是登錄或者查找好友等等),完全企業級(用XML來實現報文的)
?應用,用報文(一種協議)來識別,每個報文有文件頭,和報文體部分。
?報文頭:識別何種業務
?報文體:本次業務需要操作的資源(可以省略,例:只是一個命令)
?之前學計算機網絡時,說的協議頭文件,就是這個。
?
?g. 為了讓項目的邏輯更清晰,代碼中出現的都是與業務邏輯相關的內容,
?把socket和I/O的東西都封裝到另外一個類里,然后引用到,該頁面即可。
?異常是Java通用層的東西(不該在業務邏輯層),Java業務邏輯層完成的業務的標準步驟:
?1.收集數據 2.打包上送 3.拿到結果 4.解析 5.顯示到頁面(最優秀的代碼)
?
2.注意幾點
?a.?TCP的socket即I/O的對象,要在頁面的構造方法init()方法前邊(修改后的頁面不存在這個問題)
??就是說,如果通道都沒有打通,那么頁面也不能顯示,要不然有什么意義
?b.?獲取圖像名字的時候,左邊要+1,因為左邊是閉區間。
??把圖像往下拉框里添加的時候,是作為一個文件夾來對待的,
??用到路徑信息。
?
?c.?一個攜帶數據的對象,為了在客戶端和服務器端都可進行對象攜帶數據的
??操作,那么該對象必須實現序列化接口Serielizable()

轉載于:https://www.cnblogs.com/StephenChowcai/p/7291150.html

總結

以上是生活随笔為你收集整理的QQ项目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。