原创 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