原创 c++ socket開發之time_wait
當兩個socket處於連接的情況下,先用ctrl+c關掉的一方套接字會處於time_wait狀態。如果是客戶端先關閉,time_wait不會對下次重新啓動有影響,因爲client會隨機分配一個端口。 而如果是服務器先關閉,這時服務器的端口
原创 C/C++如何使用條件編譯來調試程序 ?
樣例程序如下: 需要調試時,在文件開頭加上 #define DEBUG 不需要調試時,去掉文件開頭的 #define DEBUG #include <stdio.h> #include <string.h> #define DEBUG
原创 環簽名論文分析
論文題目 Linkable Spontaneous Anonymous Group Signature for Ad Hoc Groups 一、論文主要部分翻譯 1、密鑰生成: (1)給定一個羣 G = <g> , 它的階爲質數
原创 循環鏈表相交-快慢指針找相交點證明
我們要證明的不是 b = c, 而是兩個速度相同的指針分別從O點和P點順時針出發,它們會在Q點相遇。 1、 先行條件是快慢指針在P點相遇,且快指針速度是慢指針的2倍,則相遇時,快指針走過的路徑長度是慢指針的2倍
原创 C++ static與extern
static 與 extern是用來做標識符作用域限定的。 程序1: test.cpp #include <iostream> using namespace std; int MAX = 8 ; void func1(){ c
原创 linux-0.96 網絡函數一:sock_socket函數調用過程
該版本的linux只僅支持 AF_UNIX 協議族。我們從一般的AF_UNIX程序自頂向下地看。 1. AF_UNIX 通信程序示例代碼 服務器: #include <stdio.h> #include <netinet
原创 c++ redis存取二進制串
#include <iostream> #include <hiredis/hiredis.h> using namespace std; int main(){ redisContext *c = redisConnect("127
原创 go語言調用c++代碼
網絡大多在寫怎麼用go調用c,而沒有寫怎麼調用c++。 1、首先,我們創建文件目錄 2、 main.go package main import ( "./ndnKeyChain" ) func main(){ ndnKeyC
原创 ubuntu1604 apache2打開cgi
sudo cp /etc/apache2/mods-available/cgi* /etc/apache2/mods-enabled/ sudo service apache2 restart 系統默認的cgi-bin目錄爲 : /us
原创 linux UDP類型的socket通信
數據主動發出方:send.c #include <stdio.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <str
原创 新安裝 ubuntu1604 一些配置
1、增加workspace數量 dconf write /org/compiz/profiles/unity/plugins/core/hsize 3 dconf write /org/compiz/profiles/unity/pl
原创 端口複用的內部實現機制
1、我們首先假設,服務器打開了一個21號端口,監聽地址爲0.0.0.0。此時,服務器會打開一個監聽套接字 (*:21 , *:*) ,套接字可由4元組唯一標識,4元組格式爲 (監聽地址:監聽端口, 外來地址:外來端口)。 2、某個客戶主
原创 .gitignore 忽略父目錄,但不忽略某個子目錄的寫法
*.d *.o tags minoaserver files/* !files/share
原创 c/c++ linux下判斷目錄中所有文件的類型
#include <iostream> #include <dirent.h> using namespace std; int main() { string dirname = "./" ; DIR * dp ; struct
原创 c/c++ gmp庫大整數運算
計算10000! #include <gmp.h> int main() { mpz_t num ; mpz_t z_i , z_s , z_o ; mpz_init_set_str(z_i , "1" , 10) ; mpz