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

📄 banksocket.cpp

📁 rtsp协议的主要实现代码.对开发流媒体
💻 CPP
字号:
// BankSocket.cpp : implementation file
//
#include <stdafx.h>
#include "BankSocket.h"

/////////////////////////////////////////////////////////////////////////////
// CBankSocket

CBankSocket::CBankSocket()
{
	s = 0;
}

CBankSocket::CBankSocket(SOCKET sck)
{
	s = sck;
}

CBankSocket::~CBankSocket()
{
}

/////////////////////////////////////////////////////////////////////////////
// CBankSocket member functions

SOCKET CBankSocket::Create()
{
	if(!s)	
	{
		s = socket(AF_INET,SOCK_STREAM,0);
		if(s == INVALID_SOCKET)
			return 0;
	}
	return s;
}

BOOL CBankSocket::Connect(LPCTSTR lpszHostAddress, UINT nHostPort)
{
    int		iResult; 
    struct  sockaddr_in addr; 
	s = Create();
	if(!s)
		return FALSE;
    addr.sin_family = AF_INET; 
    addr.sin_port = htons(nHostPort); 
    addr.sin_addr.s_addr = inet_addr (lpszHostAddress);
    iResult=connect(s,(struct sockaddr *)&addr, sizeof(addr)); 
	if(iResult == SOCKET_ERROR){
		Close();
		return FALSE;
	}
	return TRUE;
}

int CBankSocket::Send(const char *lpBuf, int nBufLen, int nFlags)
{	
	int		iRet;
	fd_set	fd_write;
	struct	timeval TimeOut = {75, 0};

	FD_ZERO(&fd_write);
	FD_SET(s, &fd_write);
	
	iRet = select(NULL, NULL, &fd_write, NULL, &TimeOut);
	if(iRet == 0 || iRet == SOCKET_ERROR)return 0;
	
	iRet = send(s, lpBuf,nBufLen,0);
	if(iRet == 0 || iRet == SOCKET_ERROR)return 0;
	return iRet;
}

int CBankSocket::Receive(char *lpBuf, int nBufLen, int nFlags)
{
	int		iRet;
	fd_set	fd_read;
	struct	timeval TimeOut = {75, 0};

	FD_ZERO(&fd_read);
	FD_SET(s, &fd_read);
	
	iRet = select(NULL, &fd_read, NULL, NULL, &TimeOut);
	if(iRet == 0 || iRet == SOCKET_ERROR)return 0;
	
	iRet = recv(s,lpBuf,nBufLen,0);
	if(iRet == 0 || iRet == SOCKET_ERROR)return 0;
	return iRet;
}

void CBankSocket::Close()
{
	closesocket(s); 
	WSACleanup();
	s = 0;
	return ;
}

⌨️ 快捷键说明

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