QT學習之路十三(基於Linux qt的聊天室)
前天將Windows下的聊天室改版了,但是我昨天才發現那個版本有一個缺陷,一個我一開始沒有注意到的錯誤,直到昨天除錯的時候才發現,就是我資料傳輸的時候是用std::string型別的,一開始是為了圖方便,但是有一個致命的缺陷,就是客戶端給伺服器傳輸的時候,伺服器不知道客戶端傳輸的位元組數,讀取的都是sizeof(結構體),這樣測到的大小隻是string初始化的大小,但是並不知道實際傳輸的大小,也正因此,在檔案傳輸、資訊傳遞的時候,一旦傳送的資訊多了,伺服器就崩潰了,甚至只能傳送寥寥幾字,這個方面我還會想辦法,把傳輸的string型別資料轉化為char*型別,因為char*型別的資料是定的,伺服器和客戶端可以限定傳送、接收大小。
也正是因為這個問題,我先把之前Linux下的聊天室改了一下,用的是原來的伺服器程式碼,只是將客戶端做了一下介面的改變,因為這次伺服器用的是原來的C語言程式碼,所以傳輸的時候不會出現上述問題。若是有朋友需要的話也可以去下載http://download.csdn.net/detail/hjf161105/9768265
相關推薦
QT學習之路十三(基於Linux qt的聊天室)
前天將Windows下的聊天室改版了,但是我昨天才發現那個版本有一個缺陷,一個我一開始沒有注意到的錯誤,直到昨天除錯的時候才發現,就是我資料傳輸的時候是用std::string型別的,一開始是為了
Qt學習之路十三—— 再談TCP/IP(多客戶端連線伺服器)
一、TCP和UDP的區別這裡我會用一個表格來顯示這兩者的區別比較項TCPUDP是否連線面向連線無連線傳輸是否可靠可靠不可靠流量控制提供不提供工作方式全雙工可以是全雙工應用場合大量資料少量資料速度慢快二、incomingConnection函式這個函式和之前講過的newConn
Qt 學習之路 2(40):隱式數據共享
深拷貝和淺拷貝 != 這樣的 pointer map painter pos 轉載 多線程 博客轉載自:https://www.devbean.net/2013/01/qt-study-road-2-implicit-sharing/ Qt 中許多 C++ 類使用了隱式數據
Qt 學習之路 2(42):QListWidget、QTreeWidget 和 QTableWidget
上一章我們瞭解了 model/view 架構的基本概念。現在我們從最簡單的QListWidget、QTreeWidget和QTableWidget三個類開始瞭解最簡單的 model/view 的使用。這部分內容的確很難組織。首先,從最標準的 model/view 開始,往往會糾結於複雜的程式碼;但是
Qt 學習之路 2(19):事件的接受與忽略(當重寫事件回撥函式時,時刻注意是否需要通過呼叫父類的同名函式來確保原有實現仍能進行!有好幾個例子。為什麼要這麼做?而不是自己去手動呼叫這兩個函式呢?因為我們無法確認父類中的這個處理函式有沒有額外的操作)
版本: 2012-09-29 2013-04-23 更新有關accept()和ignore()函式的相關內容。 2013-12-02 增加有關accept()和ignore()函式的示例。 上一章我們介紹了有關事件的相關內容。我們曾經提到,事件可以依情況接受和忽略。現在,我們就
Qt 學習之路 2(26):反走樣
我們在光柵圖形顯示器上繪製非水平、非垂直的直線或多邊形邊界時,或多或少會呈現鋸齒狀外觀。這是因為直線和多邊形的邊界是連續的,而光柵則是由離散的點組成。在光柵顯示裝置上表現直線、多邊形等,必須在離散位置取樣。由於取樣不充分重建後造成的資訊失真,就叫走樣;用於減少或消除這種效
Qt學習之路一(一個簡單的時鐘)
今天開始接觸了qt,剛開始為了搭環境,找qt create找了好久,網上不怎麼好找,找了一個晚上才找到的,先把資源分享一下給大家。 QTSDK分享 http://pan.baidu.c
Qt 學習之路 2(86):QML檢視代理
與 Qt model/view 架構類似,在自定義使用者介面中,代理扮演著重要的角色。模型中的每一個數據項都要通過一個代理向用戶展示,事實上,使用者看到的可視部分就是代理。 每一個代理都可以訪問一系列屬性和附加屬性。這些屬性及附加屬性中,有些來自於資料模
Qt 學習之路 2(89):Canvas(續)
變換 Canvas中的“變形”,主要指的是座標系的變換,而不是路徑的變換。這與 QML 元素變換非常相似,都可以實現座標系統的scale(縮放)、rotate(旋轉)和translate(平移);不同的是,變換的原點是畫布原點。例如,如果以一個路徑的中心點為定點
Qt 學習之路 2(38):儲存容器
儲存容器(containers)有時候也被稱為集合(collections),是能夠在記憶體中儲存其它特定型別的物件,通常是一些常用的資料結構,一般是通用模板類的形式。C++ 提供了一套完整的解決方案,作為標準模板庫(Standard Template Library
Qt學習之路【1】:QT顯示中文問題
最近,公司專案的GUI介面使用的是Qt,研究了近兩個月的Qt發現中文顯示確實是一個問題,這個問題中主要存在兩方面的問題: 【1】中文顯示; 【2】中文亂碼; 其中【1】問題出現的情景是:Qt的
QT學習之路十二(基於Windows qt的聊天室)
這幾天一直在將之前的聊天室改版,客戶端用qt寫,伺服器用Windows API和c++寫,期間遇到很多挫折,很多bug,甚至有過想要放棄的念頭,幸好,上天眷顧,經過了4、5天的時間,終於找到了錯誤所
Linux學習之路--Mariadb(3)基本使用操作【20】---20180123
result run page 提高 進行 組成 varchar alias pan 一、MariaDB程序1、MariaDB的程序組成Client mysql:CLI交互式客戶端程序 mysqldump,mysqladmin...Server mysq
Linux學習之路-Nginx(1)介紹篇【22】---20180206
Nginx架構介紹 I/O介紹 一、Nginx介紹Nginx:engine X ,2002年,開源,商業版http協議:web服務器(類似於httpd)、http reverse proxy(類似於httpd)、imap/pop3 reverse proxy,tcpNGINX is a free, o
Linux學習之路-Nginx(2)安裝及配置文件篇【23】---20180210
Nginx編譯 Nginx yum安裝 主配置文件分析 Core functionality分 一、Nginx的安裝方法及配置介紹1、yum安裝官方: http://nginx.org/packages/centos/7/x86_64/RPMSFedora-EPEL: http
Linux學習之路-Nginx(4)模塊簡要介紹篇【27】---20180228
ngx_http_proxy_modu ngx_http_headers_mo ngx_http_fastcgi_mo 一、ngx_http_proxy_module模塊ngx_http_proxy_module轉發請求至另一臺主機1、proxy_pass URL;Context:location
Linux學習之路-虛擬化(1)介紹20180303
虛擬化一、虛擬化:Virtualization 虛擬化技術類型: 主機虛擬化:xen, kvm, virtualbox, … (缺陷就是總是有一層內核的管理) 容器(用戶空間隔離): lxc(LinuX Container), openvz, …
QT學習之路十六(QWebView實現簡易瀏覽器)
QtWebkit 模組介紹 QtWebkit 模組提供了一個在Qt中使用web browser的engine,這使得我們在QT的應用程式中使用全球資訊網上的內容變得很容易,而且對其網頁內容的控制也可以通過native controls 實現 。 QtWebkit具
Qt學習之路12--Qt標準對話方塊(字型對話方塊、進度條對話方塊和列印對話方塊)
使用預定義對話方塊的三板斧原則:定義物件後設置父元件和屬性、模態呼叫exec()、根據結果判斷執行流程。 字型對話方塊 字型對話方塊屬於Qt預定義的對話方塊型別,它的作用就是通過使用者得到字型型別並返回。 QFontDialog dia(this)
STM32學習之路-LCD(4)<顯示字符>
計算 ack 字節 ring oid ng- 透明 標點符號 函數 昨晚瘋狂的打了一夜的LOL,感覺L多了,今天一天精神萎靡.還是繼續把顯示字符給看了,可是在猶豫要不要寫這篇文章 事實上寫的東西也就是copy別人家的代碼,不想寫那麽多,就記錄下自己困惑的地方吧.也