⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpiptrcdlg.h

📁 lwip tcp/ip 协议栈 adsp BF533 DSP 移植 用 visual dsp++ 编译
💻 H
字号:
// TCPIPTrcDlg.h : header file
//

#if !defined(AFX_TCPIPTRCDLG_H__FBDE89CE_E29F_4B91_A313_973F2F24F95D__INCLUDED_)
#define AFX_TCPIPTRCDLG_H__FBDE89CE_E29F_4B91_A313_973F2F24F95D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CTCPIPTrcDlgAutoProxy;

#define MAX_HOST_NAME 128    
typedef struct HostMapping {
	int		IpAddrs;
	const char	*HostName;
} HostMapping;


typedef struct TraceLine {
	struct TraceLine		*Next;
	int						Mark;
	char					*Data;
} TraceLine;

/////////////////////////////////////////////////////////////////////////////
// CTCPIPTrcDlg dialog

class CTCPIPTrcDlg : public CDialog
{
	DECLARE_DYNAMIC(CTCPIPTrcDlg);
	friend class CTCPIPTrcDlgAutoProxy;

// Construction
public:
	CTCPIPTrcDlg(CWnd* pParent = NULL);	// standard constructor
	virtual ~CTCPIPTrcDlg();

// Dialog Data
	//{{AFX_DATA(CTCPIPTrcDlg)
	enum { IDD = IDD_TCPIPTRC_DIALOG };
	CStatic	m_ReportCtrl;
	CStatic	m_LocalIPCtrl;
	CEdit	m_ChannelCtrl;
	CButton	m_StopAcqCtrl;
	CButton	m_StartAcqCtrl;
	CButton	m_SaveFileCtrl;
	CButton	m_SaveCurCtrl;
	CButton	m_SaveAllCtrl;
	CButton	m_PauseCtrl;
	CEdit	m_NoEventsCtrl;
	CEdit	m_FileNameCtrl;
	CListBox	m_EventListCtrl;
	CString	m_FileName;
	BOOL	m_SaveAll;
	UINT	m_Channel;
	long	m_NoEvents;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTCPIPTrcDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
public:
	bool			m_Paused;
	bool			m_Continue;
	bool			m_StopAcquiring;
	bool			m_Stopped;
	int				m_NoHostNames;
	int				m_LastNdx;
	HostMapping		m_HostMap[MAX_HOST_NAME];
	char			m_StrBuffer[2049];
	long			m_TrcIndex;
	long			m_NoEntries;
	TraceLine		*m_TraceHead,*m_TraceTail;
	long			m_TraceListSize;
	CRITICAL_SECTION m_Critical;
	FILE			*m_Trc;
	char			m_SaveAlFileName[512];
	SOCKET			m_Listen;
	SOCKET			m_Client;
	void Stop(void);

	char *ResToText(int res);
	void Recv(void);
	void TcpRecv(void);
	void AppendLine(void);
	void TidyUp(void);

	char * FindHostName(int IpAddrs, char *bf);
	void  DumpIPTraceEntry(
		unsigned char id, int nbytes, unsigned short clk,
		unsigned char *hdr);
	void  DumpDefTraceEntry(
		unsigned char id, int nbytes, unsigned short clk,
		unsigned char *hdr);
	void  DumpTraceEntry(
		unsigned char *hdr);
	void  DumpArpTraceEntry(
		unsigned char id, int nbytes, unsigned short clk,
		unsigned char *hdr);

protected:
	CTCPIPTrcDlgAutoProxy* m_pAutoProxy;
	HICON m_hIcon;

	BOOL CanExit();

	// Generated message map functions
	//{{AFX_MSG(CTCPIPTrcDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnDestroy();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnClose();
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnHelp();
	afx_msg void OnChangeFilename();
	afx_msg void OnChangeNoevents();
	afx_msg void OnPause();
	afx_msg void OnSavecur();
	afx_msg void OnSavefile();
	afx_msg void OnStartacq();
	afx_msg void OnStopacq();
	afx_msg void OnBrowse();
	afx_msg void OnChangeChannel();
	afx_msg void OnSaveall();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


#define ICMP_PROTOCOL           1
#define TCP_PROTOCOL            6
#define UDP_PROTOCOL            17

typedef struct datagram {
	unsigned char		VersHlen;
	unsigned char		SrvType;
	unsigned short		TotalLnth;
	unsigned short		Ident;
	unsigned short		FlagsFragOffset;
	unsigned char		TTL;
	unsigned char		Protocol;
	unsigned short		HdrChecksum;
	unsigned int		Source;
	unsigned int		Dest;
} datagram;

typedef struct udp {
	unsigned short		SrcPort;
	unsigned short		DstPort;
	unsigned short		MsgLnth;
	unsigned short      Checksum;
} udp;

#define TCPF_FIN     0x01	/* FIN - to close connection */
#define TCPF_SYN     0x02	/* SYN - to open connection */
#define TCPF_RST     0x04	/* RST - to reset connection - abort */
#define TCPF_PSH     0x08	/* PSH - to push rcvd data to application */
#define TCPF_ACK     0x10	/* ACK - AckNum is valid */
#define TCPF_URG     0x20	/* URG - Urgent ptr is valid */


typedef struct tcp {
	unsigned short		SrcPort;
	unsigned short		DstPort;
	unsigned int		SeqNo;
	unsigned int		AckNo;
	unsigned char		Hlen;
	unsigned char		Code;
	unsigned short		Window;
	unsigned short		Checksum;
	unsigned short		UrgPtr;
	
} tcp;

typedef struct icmp {
	unsigned char		Type;
	unsigned char		Qual;
	unsigned short		Checksum;
} icmp;


//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TCPIPTRCDLG_H__FBDE89CE_E29F_4B91_A313_973F2F24F95D__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -