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

📄 wnservice.cpp

📁 用中文Wordnet开发的一个智能搜索引擎
💻 CPP
字号:
/***************************************************
   
    中英文WordNet在线词典     

    本软件遵从LGPL协议,完全开放所以源代码及设计文档。

    宁夏大学智能网格系统实验室  张冬 康彩   2005.10

****************************************************/
///////////////////////////////////////////////////////
//                                                   //                                     
//      宁夏大学   张冬 康彩      2006.6             //    
//                                                   //
//      LGPL  许可发行    Email: zd4004@163.com      //
//                                                   //
//     部分资料来自互联网 鉴定来源较困难             //
//     如有不妥之处请立刻联系我们                    //
///////////////////////////////////////////////////////


#include "sockcom.h"
#include "wncn.h"

int main()
{
	WSADATA wsaData;
	SOCKET serverSocket,newConnection;
	SOCKADDR_IN serverAddr,clientAddr;

	int Ret,clientAddrLen;

	//初始化Winsock Dll
	if((Ret=WSAStartup(MAKEWORD(2,2),&wsaData))!=0)
	{
		printf("WSAStartup failed with error %d\n", Ret);
		return 0;
	}

	//建立服务器端socket
	if((serverSocket=socket(AF_INET, SOCK_STREAM, 0))==INVALID_SOCKET)
	{
		printf("Create socket error\n");
		WSACleanup();
		return 0;
	}

	//填充服务器端SOCKADDR_IN结构
	serverAddr.sin_family=AF_INET;
	serverAddr.sin_addr.s_addr=htonl(INADDR_ANY);
	serverAddr.sin_port=htons(USER_PORT);
    
	//将服务器端socket与指定IP地址和端口绑定
	if(bind(serverSocket,(SOCKADDR *)&serverAddr,sizeof(serverAddr))==SOCKET_ERROR)
	{
		int temp;
		temp=WSAGetLastError();
		printf("Bind error!\n");
		closesocket(serverSocket);
		WSACleanup();
		return 0;
	}

	//指定服务器端serverSocket为监听模式
	if(listen(serverSocket,5)!=0)
	{
		printf("Listen error!\n");
		closesocket(serverSocket);
		WSACleanup();
		return 0;
	}

	printf("Init...!\n");
	clientAddrLen=sizeof(clientAddr);

	//读取数据
    startcom();       //初始化
  
	while(!kbhit())
	{
		if((newConnection=accept(serverSocket,(sockaddr FAR*)&clientAddr,&clientAddrLen))==INVALID_SOCKET)
		{
			printf("Connect failed.Please try again!\n");
			continue;
		}
		//hThreadHandle = _beginthreadex(NULL , 0 , HttpThread , (void *)&newConnection , 0 , &uThreadID);
		//CloseHandle((HANDLE) hThreadHandle);
	}
	closesocket(serverSocket);
	WSACleanup();
	return 0;
}

unsigned __stdcall HttpThread(void *  p)
{
	BufferSocket BufSock;
	InitBufferSocket(&BufSock);
	BufSock.Socket = *((SOCKET *) p);
	GetNewWordNetCN(BufSock);
	closesocket(BufSock.Socket);
	return 0;
}

void GetNewWordNetCN(BufferSocket BufSock)      //得到请求数据   查找数据  发送数据
{
	char buf[100],*NotFind="NXU_AGL_NULL";
	int Ret;
	Ret = ReadLineFromBufferSocket(&BufSock , buf , 100);     //读取数据
	buf[Ret-2]='\0';
    
	//printf("%s\n",buf);
	
	long index=GetIt(buf);
	//printf("SSS:");
    //printf("%s\n",MwordNwt[index+1]);

	if(index!=-999)
	{
		if((Ret=WriteSocket(BufSock.Socket,MwordNwt[index],strlen(MwordNwt[index]))) < 0 )
			printf("Send failed.You can try again!\n");
	}
	else
	{
		if((Ret=WriteSocket(BufSock.Socket,NotFind,strlen(NotFind))) < 0 )
			printf("Send failed.You can try again!\n");
	}
	return;
}

⌨️ 快捷键说明

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