socket動態庫專案
XSocket.h
class XSocket
{
public:
bool Bind(unsigned short port);
protected:
int sock = 0;
};
XSocket.cpp
#include "XSocket.h"
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <unistd.h>//標頭檔案中儘量不要引用,以後要做跨平臺應用,不同平臺的標頭檔案引用可能不一樣.h檔案就變得不通用了
#include <iostream>
using namespace std;
XSocket::Bind(unsigned short port)
{
if(this->sock){
close(this->sock);//每次建立的時候先進行釋放
}
//建立連結,三次握手的資訊會存在這裡,當讀這個socked的時候會獲取與使用者建立的連結
this->sock = socked(AF_INET,SOCK_STREAM,0);//獲取檔案id,win裡面的控制程式碼
if(this->sock <= 0 ){
cout << "creat socket faild.(可能資源用盡)" << endl;
return false;
}
//bing->地址填充(協議、IP、port),告訴系統ip+port的資料與某一個socked關聯並寫到寫個socked檔案中
sockaddr_in saddr;
saddr.sin_family = AF_INET;//協議型別
saddr.sin_port = htons(port);//轉換為網路傳輸位元組序
saddr.sin_addr.s_addr = htonl(0);//long,0表示任何地址都接受
int re = bind(sock,(sockaddr*)&saddr,sizeof(saddr));//c語言沒有過載,只能通過同一個介面sockaddr,需要強轉不同型別,最後通過size來判斷繫結的是什麼型別
if(re == -1){
cout << "bing faild." << endl;
return false;
}
//以上只是告訴,但是並沒有開始寫,從listen開始發過來的資料開始寫
listen(sock,100);//引數2:未完成佇列的大小,非併發數量,理解為快取最多放多少個,一瞬間能夠處理的數量,假設100,但是進來了1000,還有900個都會被扔掉:https://www.cnblogs.com/ztteng/p/5147156.html
cout << "bing port" << port << "success" << endl;
return true;
}
makefile
OUT=libxsocket.so
CC=$(g++)
$(OUT):XSocket.cpp XSocket.h
$(CC) $+ -O $@ -shared -fPIC -g -std=c++11#c++11之前類中的成員變數不能賦初值,只能在建構函式中
相關文章
- 一、靜態庫和動態庫,Makefile專案管理專案管理
- FFmpeg—專案匯入FFmpeg動態庫(二)
- 為.Net專案新增動態庫載入路徑
- IDEA建立動態Web專案IdeaWeb
- 動態庫遞迴依賴專項遞迴
- 靜態庫與動態庫
- ios靜態庫和動態庫iOS
- 專案動態|Apache Pulsar 2.7.4 版本釋出Apache
- 專案百態
- DLL動態庫動態載入
- cmake:生成靜態庫和動態庫
- C編譯: 動態連線庫 (.so檔案)編譯
- Linux共享庫、靜態庫、動態庫詳解Linux
- Vue專案資料動態過濾實踐Vue
- 動態庫使用
- Linux動態庫Linux
- 動靜態庫
- linux下的靜態庫與動態庫Linux
- SpringMVC框架詳細教程(二)_建立動態Web專案SpringMVC框架Web
- Particles.js:為Web專案增添動態粒子效果JSWeb
- C++動態庫封裝C#庫,驗證動態庫環境C++封裝C#
- linux 動態庫 靜態庫 函式覆蓋Linux函式
- android下java的靜態庫和動態庫AndroidJava
- iOS動態庫和靜態庫的運用iOS
- 動態連結庫與靜態連結庫
- [Linux]動靜態庫Linux
- Vue專案打包後動態獲取自定義變數Vue變數
- 簡述Linux下的靜態庫和動態庫Linux
- 動態獲取tomcat啟動埠,控制檯列印專案訪問地址Tomcat
- 微服務專案Git倉庫自動化指令碼微服務Git指令碼
- 筆記: 判斷lib庫是動態庫還是靜態庫筆記
- 編譯lua動態庫編譯
- iOS動態庫的使用iOS
- QLibrary 載入動態庫
- Android NDK祕籍--淺析靜態庫和動態庫Android
- iOS中的動態庫,靜態庫和framework介紹iOSFramework
- 動態規劃專題動態規劃
- Vue專案中路由動態傳參功能相關實現Vue路由