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

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

?? sock.cpp

?? 用中文Wordnet開發(fā)的一個(gè)智能搜索引擎
?? CPP
字號(hào):
/***************************************************
   
    中英文WordNet在線詞典     

    本軟件遵從LGPL協(xié)議,完全開放所以源代碼及設(shè)計(jì)文檔。

    寧夏大學(xué)智能網(wǎng)格系統(tǒng)實(shí)驗(yàn)室  張冬 康彩   2005.10

****************************************************/

#include "sockcom.h"

#define MAX_LINE_SIZE	1024

/***************************************************************************************************************
 sockerror 用來輸出網(wǎng)絡(luò)函數(shù)的錯(cuò)誤信息
***************************************************************************************************************/
void sockerror(const char *format, ...)
{
	int errno;
	va_list	args;

	va_start(args, format);
	fprintf(stderr, format, args);
	va_end(args);

	errno = WSAGetLastError();

	switch (errno)
	{
		case WSAEADDRINUSE:
			fprintf(stderr,"WSAEADDRINUSE:The specified address is already in use.");
			break;
		case WSAEADDRNOTAVAIL:
			fprintf(stderr,"WSAEADDRNOTAVAIL:The specified address is not available from the local machine.");
			break;
		case WSAEAFNOSUPPORT:
			fprintf(stderr,"WSAEAFNOSUPPORT:Addresses in the specified family cannot be used with this socket.");
			break;
		case WSAECONNREFUSED:
			fprintf(stderr,"WSAECONNREFUSED:The attempt to connect was forcefully rejected.");
			break;
		case WSAEDESTADDRREQ:
			fprintf(stderr,"WSAEDESTADDRREQ:A destination address is required.");
			break;
		case WSAEFAULT:
			fprintf(stderr,"WSAEFAULT:The lpSockAddrLen argument is incorrect.");
			break;
		case WSAEINVAL:
			fprintf(stderr,"WSAEINVAL:The socket is already bound to an address.");
			break;
		case WSAEISCONN:
			fprintf(stderr,"WSAEISCONN:The socket is already connected.");
			break;
		case WSAEMFILE:
			fprintf(stderr,"WSAEMFILE:No more file descriptors are available.");
			break;
		case WSAENETUNREACH:
			fprintf(stderr,"WSAENETUNREACH:The network cannot be reached from this host at this time.");
			break;
		case WSAENOBUFS:
			fprintf(stderr,"WSAENOBUFS:No buffer space is available. The socket cannot be connected.");
			break;
		case WSAENOTCONN:
			fprintf(stderr,"WSAENOTCONN:The socket is not connected.");
			break;
		case WSAENOTSOCK:
			fprintf(stderr,"WSAENOTSOCK:The descriptor is a file, not a socket.");
			break;
		case WSAETIMEDOUT:
			fprintf(stderr,"WSAETIMEDOUT:The attempt to connect timed out without establishing a connection. ");
			break;
		default:
			fprintf(stderr,"WSAEError: Unknown! ");
			break;	
	}
	fprintf(stderr,"\n");
}

/***************************************************************************************************************
 Constructsockaddr 用來從根據(jù)地址strAddr和端口strPort自動(dòng)構(gòu)造好一個(gè)地址機(jī)構(gòu)
 他會(huì)自動(dòng)判斷strAddr是域名還是IP地址,然后進(jìn)行相應(yīng)轉(zhuǎn)換
 ***************************************************************************************************************/
int ConstructSockaddr(SOCKADDR_IN* paddr_in,char * strAddr,char * strPort)
{
	unsigned short port;
	struct hostent* phostent;

	port = atoi(strPort);
	if (port == 0)
		return 0;

	paddr_in->sin_family = AF_INET;
	paddr_in->sin_port = htons(port);   
	paddr_in->sin_addr.s_addr = inet_addr(strAddr);
	
	if(paddr_in->sin_addr.s_addr != INADDR_NONE)
		return 1;

	phostent = gethostbyname(strAddr);
	if (phostent == NULL)
	{
		sockerror("Resove name %s error!",strAddr);
		return 0;
	}

	paddr_in->sin_addr = *((IN_ADDR*) phostent->h_addr);
	if(paddr_in->sin_addr.s_addr != INADDR_NONE)
		return 1;
	
	return 0;
}

/***************************************************************************************************************
  WriteSocket 用來從網(wǎng)絡(luò)中寫n個(gè)字節(jié)
 ***************************************************************************************************************/
int WriteSocket(SOCKET s,char FAR *buf,int n)
{
	int count = 0;
	int sc;
	while(count < n)
	{
		sc = send(s,buf + count,n - count,0);
		if(sc < 0)
			return sc;
		if(sc == 0)
			Sleep(100);
		count += sc;
	}
	return count;
}


void InitBufferSocket(BufferSocket* pSock)
{
	pSock->ReadCount = 0;
}

/***************************************************************************************************************
  readline 用來從網(wǎng)絡(luò)中讀取一行,先將數(shù)據(jù)讀取到Buffer中,再從Buffer中讀取一行
 ***************************************************************************************************************/
int ReadCharFromBufferSocket(BufferSocket* pSock,char *ptr)
{
	if(pSock->ReadCount <= 0)
	{
		pSock->ReadCount = recv(pSock->Socket,pSock->ReadBuf,MAX_LINE_SIZE,0);
		if(pSock->ReadCount <= 0)		// EOF or SOCKET_ERROR
			return pSock->ReadCount;
		
		pSock->ReadPtr = pSock->ReadBuf;
	}

	pSock->ReadCount--;
	*ptr = *pSock->ReadPtr++;
	return 1;
}

/***************************************************************************************************************
  readline 用來從網(wǎng)絡(luò)中讀取一行,先將數(shù)據(jù)讀取到Buffer中,再從Buffer中讀取一行
 ***************************************************************************************************************/
int	ReadLineFromBufferSocket(BufferSocket* pSock,char* szBuf,int nBufSize)
{
	char c,*ptr;
	int n,rc;

	ptr = szBuf;
	for(n = 1;n < nBufSize;n++)
	{
		rc = ReadCharFromBufferSocket(pSock,&c);
		if(rc == 1)
		{
			*ptr++ = c;
			if(c == '\n')
				break;
		}
		else		// EOF or SOCKET_ERROR
		{
			if(n==1)  // no data read
				return 0;
			else
				break;
		}
	}

	ptr--;
	*ptr = '\0';
	return n;
}






















?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线综合网| 日韩一区二区三区三四区视频在线观看| 国产欧美一区二区精品婷婷 | 欧美日韩一区二区在线观看视频| 成人国产精品免费| 不卡一区二区三区四区| 99视频一区二区| 91麻豆精东视频| 欧美亚洲图片小说| 91麻豆精品国产自产在线| 51午夜精品国产| 日韩手机在线导航| 久久伊人中文字幕| 中文字幕av一区二区三区免费看| 国产精品视频你懂的| 中文字幕人成不卡一区| 亚洲永久精品国产| 七七婷婷婷婷精品国产| 国产久卡久卡久卡久卡视频精品| 国产高清不卡二三区| 99久久伊人久久99| 91国产福利在线| 91精品国产综合久久久久久久久久 | 色悠悠久久综合| 欧美日韩一区二区三区高清 | 国产精品久久三| 尤物在线观看一区| 日本亚洲免费观看| 国产成人综合网| 色丁香久综合在线久综合在线观看| 欧美日韩久久久| 日韩美女一区二区三区四区| 中文字幕乱码亚洲精品一区| 一区二区三区欧美| 蜜桃精品视频在线| www.欧美精品一二区| 欧美日韩1234| 久久久久综合网| 一区二区三区四区精品在线视频| 天天做天天摸天天爽国产一区| 黄色日韩三级电影| 91日韩在线专区| 91精品国产欧美一区二区成人| 国产欧美精品在线观看| 亚洲va欧美va人人爽| 国产又粗又猛又爽又黄91精品| av福利精品导航| 日韩精品中文字幕在线一区| 日韩一区在线播放| 久久99精品网久久| 欧美视频日韩视频在线观看| 久久影院午夜片一区| 一区二区三区欧美亚洲| 国模大尺度一区二区三区| 在线视频亚洲一区| 国产欧美日韩在线| 日本91福利区| 色欧美乱欧美15图片| 国产亚洲污的网站| 日韩一区精品视频| 一道本成人在线| 久久综合色8888| 丝袜亚洲另类丝袜在线| 不卡的av中国片| xvideos.蜜桃一区二区| 午夜电影久久久| 色婷婷av久久久久久久| 国产偷国产偷精品高清尤物| 日韩二区三区在线观看| 色94色欧美sute亚洲线路一ni | 亚洲欧美一区二区三区极速播放 | 欧美日韩三级在线| 亚洲欧洲性图库| 国产精品66部| 日韩欧美一卡二卡| 亚洲高清一区二区三区| 色先锋aa成人| 欧美国产日本视频| 韩国女主播一区| 日韩一区二区视频| 亚洲国产一区二区视频| 91黄视频在线| 亚洲三级在线看| kk眼镜猥琐国模调教系列一区二区| 亚洲精品在线电影| 精品一区二区国语对白| 欧美精品成人一区二区三区四区| 亚洲人被黑人高潮完整版| 成人av中文字幕| 久久精品欧美日韩| 国内不卡的二区三区中文字幕| 欧美精品粉嫩高潮一区二区| 亚洲电影一级黄| 欧美日韩一级片网站| 亚洲一二三四在线| 97久久精品人人做人人爽| 国产精品久久久久久亚洲毛片| 成人免费三级在线| 国产精品久久久久久久久免费丝袜 | 欧美日本乱大交xxxxx| 亚洲综合在线第一页| 欧洲激情一区二区| 亚洲chinese男男1069| 欧美精品免费视频| 日韩影视精彩在线| 日韩欧美激情四射| 国产原创一区二区| 国产日韩欧美a| 成人av中文字幕| 亚洲精品va在线观看| 欧美在线免费视屏| 无吗不卡中文字幕| 日韩亚洲欧美中文三级| 免费黄网站欧美| 久久精品视频在线看| 成人性色生活片| 亚洲色图在线视频| 欧美午夜精品一区二区三区| 天天综合网天天综合色| 日韩欧美中文字幕精品| 精品亚洲国内自在自线福利| 久久精品夜夜夜夜久久| 91在线视频免费91| 亚洲国产精品嫩草影院| 日韩一级大片在线观看| 国产美女一区二区三区| 亚洲欧美在线高清| 欧美久久久久免费| 国产精品66部| 亚洲男人电影天堂| 欧美肥妇毛茸茸| 国产成人免费视频一区| 一区二区三区四区不卡在线 | 欧美韩国日本不卡| 色伊人久久综合中文字幕| 免费久久精品视频| 国产精品美女一区二区| 欧美日韩精品三区| 国产九色精品成人porny| 一区二区三区四区不卡视频| 日韩一区二区三区精品视频| 大胆亚洲人体视频| 亚洲图片欧美视频| 国产亚洲综合在线| 欧美自拍偷拍一区| 久久激五月天综合精品| 中文字幕一区二区三区在线不卡 | 成人av动漫在线| 婷婷综合五月天| 欧美国产97人人爽人人喊| 欧洲视频一区二区| 国产精品一二三区| 亚洲国产综合91精品麻豆| 国产偷国产偷精品高清尤物 | 中文字幕第一区二区| 欧美日本在线视频| 99久精品国产| 国产乱人伦偷精品视频免下载 | 九色综合狠狠综合久久| 亚洲乱码中文字幕| 精品国产乱码久久久久久夜甘婷婷 | 欧美日韩高清在线播放| 高清不卡一区二区| 免费的成人av| 一区二区三区免费看视频| 久久免费国产精品| 欧美日韩国产小视频在线观看| 成人国产精品免费网站| 蜜桃免费网站一区二区三区| 亚洲一区二区精品视频| 国产精品欧美精品| 精品欧美久久久| 欧美猛男超大videosgay| 成人动漫一区二区| 精品一区二区三区免费观看| 午夜精品福利一区二区蜜股av| 欧美激情综合在线| 欧美大片顶级少妇| 69成人精品免费视频| 91福利精品第一导航| av成人动漫在线观看| 国产高清无密码一区二区三区| 美女网站一区二区| 亚洲v日本v欧美v久久精品| 亚洲免费观看在线观看| 中文字幕一区不卡| 日本一区免费视频| 久久综合久久综合久久综合| 欧美成人乱码一区二区三区| 9191久久久久久久久久久| 欧美综合一区二区| 色狠狠色噜噜噜综合网| 一本一道久久a久久精品| 成人丝袜18视频在线观看| 国产精品自拍三区| 国产一区在线看| 国产精品中文字幕一区二区三区| 久久99在线观看| 国内成人免费视频| 国产精品1区2区3区在线观看|