glb_fun.cpp

来自「这是一个学习WinSocket编程的程序」· C++ 代码 · 共 78 行

CPP
78
字号
// Glb_Var_Fun.cpp : implementation file
//

#include "stdafx.h"

#include "Sender.h"

#include "glb_fun.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


//在ListBox中显示信息
void Show_msg_ListBox(char *msg)
{
	CSenderApp* pApp = (CSenderApp*)AfxGetApp();
	pApp->m_pList->InsertString(-1, msg);
}



//发送信息
//加入代码
int SendMsg(char *msg, int len)
{   
	bSending=1;
	int n;
    n = sizeof(channelsender_addr);
	return(sendto(sender_sockfd, msg, len, 0, (struct sockaddr *) &channelsender_addr, n));	
}



//接收信息
//加入代码
int ReceiverMsg(char *msg)
{
	bSending=0;
    iSendTime=0;
    int n;
    n = sizeof(channelsender_addr);
	return(n=recvfrom(sender_sockfd, msg, MAX_MSG_SIZE, 0, (struct sockaddr *) &channelsender_addr, &n));
}



//产生发送的信息:头、序号、数据、校验位、长度、尾
//加入代码
void Encode(char msg, int no, int len, char *newmsg)
{
	newmsg[0]=HEADER;
	newmsg[1]=no;
	newmsg[2]=msg;
	newmsg[4]=len;
	newmsg[5]=HEADER;
	int count=0,i;
	char a=0x01;
	for(i=0;i<8;i++)
	{
		if(msg&a)count++;
		msg=msg>>1;
	}
	newmsg[3]=(count%2);	
}


//检查应答帧
//加入代码
BOOL check_data(char *msg)
{
	if(msg[1]==ACK) return 1;
	else return 0;	
}

⌨️ 快捷键说明

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