客戶端服務端通訊protocol

2021-09-06 18:13:17 字數 1385 閱讀 3381

這個協議不知我在上面耗費了多長時間,也有人問過我咋回事,這個protocol不長,但對於我來說理解起來很費勁,今天回來看看忽然看懂了(80%),只能說不知看了多少遍

其實這些東西應該在來的乙個月這樣子都要會的,一直拖到現在,其實那時時真心看不懂

#ifndef protocol_base_h

#define protocol_base_h

//#include

#include

#pragma pack(push, 1)

//-----------基礎協議--------------

struct

protocol

return

total_size;

}bool from_buffer(void* buffer, int

len)

//這個有點難理解,buffer裡面是沒有content內容的,個人感覺可以將content理解成乙個位置,然後去這個位置的位址,正好是內容的位址

content = &p->content;

}return

true

; }

};#pragma pack(pop)

#endif

//protocol_base_h

#include

#include

#include

"protocol.h

"using

namespace

std;

//模擬放鬆命令是1,傳送乙個int 100

//傳送的時候需要分配乙個buffer,然後傳送這個buffer,接收的時候需要分配乙個buffer,然後從這個buffer裡面解析

void* g_data = new

char[100

];int

g_len;

void

send()

; pt.cmd_type =cmd;

pt.content =data;

pt.size =len;

g_len = pt.to_buffer(&buffer[0], buffer.size());//

注意不要&buffer因為buffer是物件在棧上的位址

memcpy(g_data, &buffer[0], g_len);//

複製到這個全域性的裡面方便

}void

recv()

; pt.from_buffer(g_data, g_len);

cout

<< *(int*)pt.content;//

這樣就可以按照協議傳送各種結構體形式的了,這邊解析之後強轉一下就行了

}int

main()

TCP通訊,多客戶端通訊(客戶端 服務端)

客戶端和伺服器間的交流,客戶端傳送資訊,伺服器接收到,並返回資訊 長連線建立socket連線服務端 指定ip位址,埠號 通過ip位址找對應的伺服器 呼叫socket的getinputstream 和getoutputstream 方法獲取和服務端相連的io流 輸入流可以讀取服務端輸出流寫出的資料 輸...

服務端 客戶端Socket通訊

服務端 using system using system.collections.generic using system.net using system.net.sockets using system.text using system.text.regularexpressions usi...

TCP客戶端與服務端通訊

客戶端 include include include include include in.h include include include include define maxline 1024 int main int argc,char ar 建立socketfd socketfd soc...