• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

软件就是服务----webservice调用金山词霸的问题

fun1984 2004-10-05 08:03:57
我看到一篇文章,说写了一个web服务,功能是调用金山词霸,就是web服务和金山词霸在同一个服务器上运行,实现翻译服务,但是怎么知道金山词霸做翻译功能的模块的接口呢?
大家帮忙想想看
文章来源:
http://www.mscenter.edu.cn/zhuanti/dianziqikan/2ycjswz_2.htm
实现的原理我大概搞清楚了:服务器上首先启动金山词霸,然后有一个AutoQueyService.exe(可以是控制台,winform或者windows服务)运行(功能是监听一个特定的端口),如果发现socket上有数据过来则调用金山词霸做翻译处理,将结果通过socket传出.
而web服务就是去给AutoQueyService.exe发socket数据,得到翻译结果.我这里有web服务的代码,但是就是不知道那个AutoQueyService.exe怎么弄的,难道可以找到金山词霸的内部资料吗(翻译模块的接口),令人费解.
string strResult = ""; //用来保存结果字符串
string strSend; //用来保存需要翻译的单词
byte[] bufferSnd = new byte[1024]; //用于socket发送数据的缓冲区
byte[] bufferIn = new byte[4096]; //用于socket接收数据的缓冲区
string strHost;
string strPort;
//从web.config文件中得到要连接的Query-Dictionary Server的地址和端口号
NameValueCollection addrSetting = (NameValueCollection)ConfigurationSettings.GetConfig("appSettings");
strHost = addrSetting.Get("host");
strPort = addrSetting.Get("port");
ASCIIEncoding sndEnc = new ASCIIEncoding(); //发送数据的编码方式为ASCII码
Encoding rcvEnc = Encoding.GetEncoding("GB2312"); //接收数据的编码方式为GB2312码
//创建socket对象:
Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPAddress add = Dns.Resolve(strHost).AddressList[0];
IPEndPoint host = new IPEndPoint(add,int.Parse(strPort));
//连接服务端主机:
sock.Connect(host);
//如果连接成功:
if(sock.Connected)
{
//将要发送的数据放入缓冲区:
strSend = strInput;
sndEnc.GetBytes(strSend,0,strSend.Length,bufferSnd,0);
//发送数据:
sock.Send(bufferSnd);
//接收返回的数据
int nReceived = sock.Receive(bufferIn);
//将返回的数据放入结果字符串,去掉末尾的所有0
strResult = rcvEnc.GetString(bufferIn,0,nReceived);
}
//关闭连接,关闭socket
//sock.Shutdown(SocketShutdown.Both);
sock.Close();
//返回结果
return strResult;

注意:web.config里的设置:
<appSettings>
<add key="host" value="192.168.10.22" /><!-- url or ip of AutoQueryServer.exe -->
<add key="port" value="5678" /><!-- AutoQueryServer.exe used port -->
</appSettings>
...全文
151 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cutman 2004-10-15
gz
回复
fun1984 2004-10-09
自己顶
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-10-05 08:03
社区公告

让您成为最强悍的C#开发者