原创 socket編程api學習二客戶端的編程

代碼 #include <unistd.h> #include <sys/stat.h> #include <sys/wait.h> #include <sys/types.h> #include <fcntl.h> #include

原创 函數指針基礎

知識點 如果調用函數名,就是調用函數在內存中的首地址。 int test(int a)//參數要和函數匹配 { printf("a%d\n", a); return 0; } void main() { typedef int

原创 模板函數的基礎應用

#include <iostream> using namespace std; //template告訴C++編輯器要進行泛型編程 T在這裏是一種類型 template<typename T> //數據類型參數化 void myswap

原创 C語言結構體的字節對齊原則

爲什麼要對齊? 現代計算機中內存空間都是按照byte劃分的,從理論上講似乎對任何類型的變量的訪問可以從任何地址開始,但實際情況是在訪問特定類型變量的時候經常在特 定的內存地址訪問,這就需要各種類型數據按照一定的規則在空間上排列,而不是順

原创 socket API 學習一

linux快速學習api方式 在linux操作系統中如果你知道函數的名字可以通過man 函數去尋找,比如我們要學習的socket 的基礎api,socket函數,bind函數等都可以通過man函數直接找到。 比如socket函數 然後我

原创 C++運算符重載基礎

運算符重載的規則 爲什麼要操作符重載 在C++編輯器中,如果你定義的一個類型是一個基礎類型,那麼我們進行一個運算的話完全沒有任何的問題比如,int a,b,c; c=a+b;這裏的加號和我們平常理解的加號意義是完全一樣的,但是如果是類的話

原创 C++對C函數加強(第三天學習)

第三天學習 1.內聯函數 1.關鍵字inline 2.帶參數的define替換 #include <iostream> #define MYFUNC(a,b) ((a)<(b)?(a):(b))//帶參數的宏替換 inline int

原创 Linux系統編程之more命令

命令基礎用法 linux more 基本應用 more 文件名 基本思路 僞代碼 show 24 line form input printf[more?]message input Enter,space,or q; if Enter,

原创 new delete 基礎應用

new delete基礎 基礎應用 #include "iostream" using namespace std; int main() { //1.基礎的使用 //new 基本類型 int *p = (int *)malloc(

原创 網狐服務器的基本結構

以上是花了半天時間,根據調試的基本結構的出來的,給需要的朋友,也不一定完全正確,望大家一起學習進步使用。

原创 面向對象模型一點感想

基礎知識 1.問題 首先我們用最簡單的程序去探究一下我們的問題,我們都知道結構體他的大小是根據成員變量的大小進行一個操作的,這個我們在C語言中已經得到了驗證,下面我們來對類的大小進行操作。 代碼 #include "iostream"

原创 C++學習第四天

學習第四天 1.類的基本定義 1.有一個關鍵字class 2.類的最重要的兩個東西,變量和函數,在類裏面變量叫做成員變量這個概念相信大家在結構體裏面有一定了解,另一個就是函數,在類裏面叫做成員函數。所以我們描述一個類最關鍵的兩點就是變量和

原创 網絡編程學習第六天

產生的原因 我的理解就是tcp流因爲他是一個連續的,然後我們用360等工具我們每次看到發送過來的數據是有變化的,所以我們會產生沒有接受完畢的數據包,或者接受了過多的情況,我們對這種情況叫做斷包活着粘包的情況。解決方案有很多種,我說一種最簡

原创 openresty基礎

OpenResty是什麼 OpenResty(也稱爲 ngx_openresty)是一個全功能的 Web 應用服務器。它打包了標準的 Nginx 核心,很多的常用的第三方模塊,以及它們的大多數依賴項。 通過揉和衆多設計良好的 Nginx

原创 非阻塞connect,錯誤碼:EINPROGRESS

當我們以非阻塞的方式來進行連接的時候,返回的結果如果是 -1,這並不代表這次連接發生了錯誤,如果它的返回結果是 EINPROGRESS,那麼就代表連接還在進行中。 後面可以通過poll或者select來判斷socket是否可寫,如果可以寫