亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tcplib.cpp

?? 通用SP及網(wǎng)關(guān)使用
?? CPP
字號:
/***************************************** file : TcpLib.cpp writer: linsh date: 2004-07-23 content: tcp client and server class *****************************************/#include "stdafx.h"#include "TcpLib.h"#include <io.h>
#include <Winsock2.h>
#include <stdlib.h>
extern int errno;
CTcpClient::CTcpClient(){	rCommFunc_.OnRecvData = NULL;	rCommFunc_.OnConnected = NULL;	rCommFunc_.OnDisconnected = NULL;	sock = -1;	FD_ZERO(&m_readset);}CTcpClient::~CTcpClient(){	if(sock > 0)		closesocket(sock);}int CTcpClient::InitClient(char *ip, int port){	struct sockaddr_in dest;	strncpy(m_sdistIp,ip,16);	m_port = port;
	sock = socket(PF_INET,SOCK_STREAM,0);	if(sock < 0)
	{
		int err = WSAGetLastError();
		return -1;	}	memset(&dest,0, sizeof(dest));	dest.sin_family = PF_INET;	dest.sin_port = htons(port);	dest.sin_addr.S_un.S_addr = inet_addr(ip);	if(0 != connect(sock, (sockaddr *)&dest, sizeof(dest)))	{		closesocket(sock);		sock = -1;		return -1;	}	
	unsigned long flag = 0;
	int ret = ioctlsocket(sock,FIONBIO,&flag);
	if(ret != 0)
	{
			closesocket(sock);
			sock = -1;
			return -1;
	}	if(rCommFunc_.OnConnected != NULL)		rCommFunc_.OnConnected(sock,ip,port);	return sock;}int CTcpClient::SendMsg(int sock,char * sBuf,int nLen){	int ret = send(sock,sBuf,nLen,MSG_DONTROUTE);
	if(ret == nLen)
		return 0;
	else
	{
		if(rCommFunc_.OnDisconnected)
			rCommFunc_.OnDisconnected(sock,m_sdistIp,m_port);
		closesocket(sock);
		sock = -1;
		return 104;
	}
}void CTcpClient::RunClient(){	int nLen;	struct  timeval timeout = {0,0};		FD_ZERO(&m_readset);	FD_SET((unsigned int)sock, &m_readset);	if(select(sock + 1, &m_readset, NULL,NULL, &timeout) > 0)	{		if (FD_ISSET(sock,&m_readset)) {			nLen = recv(sock,m_Buf,SOCK_BUF_SIZE,0);
			if(nLen > 0)			{				if(rCommFunc_.OnRecvData != NULL)					rCommFunc_.OnRecvData(sock,m_sdistIp,m_port,m_Buf,nLen);			}			else			{				if(rCommFunc_.OnDisconnected)					rCommFunc_.OnDisconnected(sock,m_sdistIp,m_port);
				closesocket(sock);
				sock = -1;
			}		}    } }void CTcpClient::CloseClient(){	if(sock > 0)		closesocket(sock);	if(rCommFunc_.OnDisconnected)		rCommFunc_.OnDisconnected(sock,m_sdistIp,m_port);	sock = -1;}CTcpServer::CTcpServer(){	rCommFunc_.OnRecvData = NULL;	rCommFunc_.OnConnected = NULL;	rCommFunc_.OnDisconnected = NULL;	FD_ZERO(&m_readset);	m_srvsock = -1;	m_listenport =  0;	maxsock = 0;	lst_clients = NULL;}CTcpServer::~CTcpServer(){	tagCliList *cr ;	tagCliList *nt;	cr = lst_clients;	while( cr != NULL )	{		nt = cr->next;		if(cr->clifd > 0)			closesocket(cr->clifd);		delete cr;		cr = nt;	}	lst_clients = NULL;}int CTcpServer::InitServer(int iport){	struct sockaddr_in dest;	m_srvsock = socket(PF_INET, SOCK_STREAM, 0);	if(m_srvsock < 0)		return -1;	memset(&dest,0, sizeof(dest));	dest.sin_family = PF_INET;	dest.sin_port = htons(iport);	dest.sin_addr.s_addr = INADDR_ANY;	if(bind(m_srvsock, (struct sockaddr*)&dest, sizeof(dest)) != 0)	{		closesocket(m_srvsock);		m_srvsock = -1;		return -1;	}		listen(m_srvsock, 255);	maxsock = maxsock>m_srvsock? maxsock:m_srvsock;	unsigned long flag = 0;
	int ret = ioctlsocket(m_srvsock,FIONBIO,&flag);
	if(ret != 0)
	{
			closesocket(m_srvsock);
			m_srvsock = -1;
			return -1;
	}
	
	return 0;}void CTcpServer::RunServer(){	struct  timeval timeout = {0,0};  	FD_ZERO(&m_readset);	FD_SET((unsigned int)m_srvsock, &m_readset);	if(select(m_srvsock + 1, &m_readset, NULL,NULL, &timeout) > 0)	{		if (FD_ISSET(m_srvsock,&m_readset)) {			tagCliList *cr ;			struct sockaddr_in client_addr;			int addrlen = sizeof(client_addr);			int clientfd;			clientfd = accept(m_srvsock, (struct sockaddr*)&client_addr, &addrlen);			if(clientfd > 0)			{				cr = new tagCliList;				memset(cr,0,sizeof(tagCliList));				cr->clifd = clientfd;				strncpy(cr->cliIp,inet_ntoa(client_addr	.sin_addr),16);				cr->cliport = ntohs(client_addr.sin_port);				cr->next = NULL;				tagCliList **lp;				for(lp = &lst_clients; (*lp) != NULL; lp = &((*lp)->next));				(*lp) = cr;				(rCommFunc_.OnConnected)(cr->clifd, cr->cliIp,cr->cliport);				maxsock = maxsock > cr->clifd? maxsock: cr->clifd;			}		}        } 	FD_ZERO(&m_readset);		tagCliList **lp;	for(lp = &lst_clients; (*lp) != NULL; lp = &((*lp)->next))	{		if((*lp)->clifd > 0)			FD_SET((unsigned int)(*lp)->clifd,&m_readset);	}	if(select(maxsock + 1, &m_readset, NULL,NULL, &timeout) > 0)	{
		lp = &lst_clients;
		while((*lp) != NULL)
		{
			if(FD_ISSET((*lp)->clifd, &m_readset))
			{
				int nLen;;
				nLen = recv((*lp)->clifd,m_Buf,SOCK_BUF_SIZE,0);
				if(nLen > 0)
				{
					if(rCommFunc_.OnRecvData != NULL)
						rCommFunc_.OnRecvData((*lp)->clifd,(*lp)->cliIp,(*lp)->cliport,m_Buf,nLen);
					lp = &((*lp)->next);
				}
				else
				{
					if(rCommFunc_.OnDisconnected)
						rCommFunc_.OnDisconnected((*lp)->clifd,(*lp)->cliIp,(*lp)->cliport);
					closesocket((*lp)->clifd);
					(*lp)->clifd = -1;
					tagCliList *dellp;
					dellp = *lp;
					*lp = (*lp)->next;
					delete dellp;
				}
			}
			else
				lp = &((*lp)->next);
		}	}}void CTcpServer::CloseServer(){	if(m_srvsock > 0)		closesocket(m_srvsock);	m_srvsock = -1;}int CTcpServer::SendMsg(int ihandle, char *buf, int nLen){	int ret = send(ihandle,buf,nLen,MSG_DONTROUTE);
	if(ret == nLen)
		return 0;
	else
	{
		tagCliList **lp;
		lp = &lst_clients;
		while((*lp) != NULL)
		{
			if((*lp)->clifd == ihandle)
			{
				if(rCommFunc_.OnDisconnected)
					rCommFunc_.OnDisconnected((*lp)->clifd,(*lp)->cliIp,(*lp)->cliport);
				closesocket((*lp)->clifd);
				(*lp)->clifd = -1;
				tagCliList *dellp;
				dellp = *lp;
				*lp = (*lp)->next;
				delete dellp;
				break;
			}
			else
				lp = &((*lp)->next);
		}
		return 104;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成+人+亚洲+综合天堂| 在线欧美日韩精品| 国产在线精品一区二区三区不卡 | 不卡视频一二三四| 日韩精品一级二级| 亚洲欧美激情视频在线观看一区二区三区| 欧美福利一区二区| 成人精品电影在线观看| 免费欧美高清视频| 一区二区免费看| 国产女同性恋一区二区| 欧美日韩国产乱码电影| 91免费视频观看| 国产v综合v亚洲欧| 另类综合日韩欧美亚洲| 亚洲国产中文字幕| 中文字幕综合网| 国产偷v国产偷v亚洲高清| 欧美一区二区在线免费播放| 色综合久久中文综合久久97| 国产美女娇喘av呻吟久久| 水野朝阳av一区二区三区| 亚洲欧美乱综合| 国产精品免费久久久久| 精品对白一区国产伦| 91精品久久久久久久久99蜜臂| 色综合久久天天| 成人av电影在线网| 国产999精品久久久久久绿帽| 久久99精品久久久久久| 日本亚洲欧美天堂免费| 亚洲一区二区免费视频| 亚洲日本在线天堂| 亚洲免费大片在线观看| 亚洲天堂中文字幕| 成人欧美一区二区三区| 亚洲欧洲精品一区二区三区不卡| 国产情人综合久久777777| 精品国产免费一区二区三区四区| 欧美一区二区三区免费| 日韩欧美一二三四区| 51精品国自产在线| 欧美一级欧美三级| 日韩欧美成人一区| 欧美成人伊人久久综合网| 日韩欧美一级在线播放| 精品国产制服丝袜高跟| 久久精品视频在线看| 国产欧美一区二区在线| 欧美激情在线看| 国产精品久久久久久久久动漫 | 国产精品嫩草99a| 久久精品一区八戒影视| 国产精品全国免费观看高清| 国产清纯在线一区二区www| 国产精品美女www爽爽爽| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 午夜精彩视频在线观看不卡| 性做久久久久久| 日韩电影在线观看一区| 蜜臀99久久精品久久久久久软件| 蜜臀91精品一区二区三区 | 国产suv精品一区二区6| 成人午夜在线播放| 91啪亚洲精品| 欧美日韩的一区二区| 日韩欧美不卡在线观看视频| 国产性色一区二区| 亚洲视频一二三区| 亚洲chinese男男1069| 麻豆91免费观看| 国产成人av电影在线| 色偷偷久久一区二区三区| 欧美日韩精品欧美日韩精品| 日韩免费视频一区二区| 国产精品久久久久久亚洲伦| 亚洲成av人影院在线观看网| 国产一区二区精品在线观看| 91视视频在线观看入口直接观看www| 欧美天天综合网| 久久久久久免费| 中文字幕亚洲视频| 丝袜美腿一区二区三区| 懂色av一区二区三区蜜臀| 色婷婷国产精品综合在线观看| 欧美一区二区三区四区五区| 国产精品视频线看| 青青草精品视频| 91原创在线视频| 日韩欧美国产精品一区| 国产精品传媒视频| 日韩精品乱码av一区二区| 成人综合在线视频| 欧美一区在线视频| 18成人在线观看| 另类小说欧美激情| 日本精品一区二区三区四区的功能| 欧美成人一区二区三区在线观看| 亚洲精品成人精品456| 国产在线精品一区二区夜色| 欧美日韩亚洲综合一区| 中文av一区二区| 美女脱光内衣内裤视频久久网站| 99re成人在线| 久久综合九色综合97婷婷女人| 亚洲影院理伦片| av色综合久久天堂av综合| 日韩欧美一区二区不卡| 亚洲午夜私人影院| 9i看片成人免费高清| 精品福利一二区| 日韩精彩视频在线观看| 色哟哟亚洲精品| 国产精品成人免费| 国产麻豆欧美日韩一区| 日韩一区二区在线播放| 亚洲午夜在线电影| 91亚洲精品久久久蜜桃| 久久久久久久综合色一本| 美女网站在线免费欧美精品| 欧美日韩亚洲国产综合| 亚洲最新视频在线播放| 国产不卡高清在线观看视频| 精品盗摄一区二区三区| 五月综合激情网| 欧美色图免费看| 亚洲成人免费看| 91国产成人在线| 亚洲欧美一区二区三区久本道91| 丁香婷婷综合五月| 久久精品欧美一区二区三区不卡| 青青草97国产精品免费观看| 欧美日韩亚洲综合一区二区三区| 亚洲最色的网站| 91黄色免费观看| 亚洲超碰97人人做人人爱| 欧美综合一区二区| 亚洲永久免费av| 欧美理论在线播放| 午夜精品久久久久久久99水蜜桃| 欧美日韩一区二区电影| 日韩中文字幕不卡| 6080国产精品一区二区| 久久精品久久久精品美女| 日韩三级精品电影久久久| 另类综合日韩欧美亚洲| 久久久久国产精品厨房| 国产 欧美在线| 亚洲人成精品久久久久久| 色婷婷国产精品| 天天综合天天做天天综合| 欧美精品在线观看一区二区| 免费观看在线色综合| 欧美zozozo| 高清成人免费视频| 亚洲免费在线观看| 欧美日韩卡一卡二| 久久草av在线| 亚洲国产精品黑人久久久| 色噜噜偷拍精品综合在线| 亚洲成av人影院| 精品盗摄一区二区三区| av电影一区二区| 亚洲一区二区在线观看视频| 在线综合+亚洲+欧美中文字幕| 免费观看在线色综合| 中文字幕精品三区| 欧美在线色视频| 蜜桃视频免费观看一区| 久久久www成人免费无遮挡大片| 成人精品免费网站| 亚洲一区二区不卡免费| 26uuu欧美日本| 91麻豆福利精品推荐| 日本欧美一区二区三区乱码| 国产亚洲精品aa| 欧美日韩一区二区在线观看视频 | 国产午夜精品美女毛片视频| 成人av电影在线观看| 午夜欧美视频在线观看| 欧美激情综合五月色丁香小说| 91黄色小视频| 国产成人av电影免费在线观看| 激情综合一区二区三区| 亚洲三级免费观看| 精品免费视频一区二区| 97se狠狠狠综合亚洲狠狠| 麻豆精品一区二区av白丝在线| 国产精品色在线| 91精品国产色综合久久ai换脸| 99精品欧美一区| 久久99精品一区二区三区| 亚洲另类在线制服丝袜| 久久蜜桃一区二区| 欧美二区三区91| 99riav一区二区三区| 麻豆成人免费电影| 亚洲国产精品视频| 国产精品午夜电影| 日韩久久精品一区|