?? message.h
字號(hào):
#ifndef MESSAGE_H
#define MESSAGE_H
#include "peer.h"
int int_to_char(int i, unsigned char c[4]); // 將整型變量i的四個(gè)字節(jié)存放到數(shù)組c中
int char_to_int(unsigned char c[4]); // 將數(shù)組c中的四個(gè)字節(jié)轉(zhuǎn)換為一個(gè)整型數(shù)
// 以下函數(shù)創(chuàng)建各個(gè)類型的消息
int create_handshake_msg(char *info_hash,char *peer_id,Peer *peer);
int create_keep_alive_msg(Peer *peer);
int create_chock_interested_msg(int type,Peer *peer);
int create_have_msg(int index,Peer *peer);
int create_bitfield_msg(char *bitfield,int bitfield_len,Peer *peer);
int create_request_msg(int index,int begin,int length,Peer *peer);
int create_piece_msg(int index,int begin,char *block,int b_len,Peer *peer);
int create_cancel_msg(int index,int begin,int length,Peer *peer);
int create_port_msg(int port,Peer *peer);
// 打印消息緩沖區(qū)中的消息, 用于調(diào)試
int print_msg_buffer(unsigned char *buffer, int len);
// 為發(fā)送have消息作準(zhǔn)備,have消息較為特殊,它要發(fā)送給所有peer
int prepare_send_have_msg();
// 判斷緩沖區(qū)中是否存放了一個(gè)完整的消息
int is_complete_message(unsigned char *buff,unsigned int len,int *ok_len);
// 處理收到的消息,接收緩沖區(qū)中存放著一個(gè)完整的消息
int parse_response(Peer *peer);
// 處理受到的消息,接收緩沖區(qū)中除了存放一個(gè)完整的消息外,還有不完整的消息
int parse_response_uncomplete_msg(Peer *p,int ok_len);
// 創(chuàng)建響應(yīng)消息
int create_response_message(Peer *peer);
// 即將與peer斷開(kāi)時(shí),丟棄發(fā)送緩沖區(qū)中的消息
void discard_send_buffer(Peer *peer);
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -