📄 wnservice.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 + -