有关windows服务开发的问题
我想开发一个服务程序使用sockets监听并接受服务端发送的数据。刚开始我创建了一个windows应用程序并实现了此功能,成功接受到数据。但是创建window服务后使用同样的代码却不能接受到服务端发送的数据,哪位大虾给我参考一下,为什么?我在服务程序的OnStart方法里写入以下代码:
protected override void OnStart(string[] args)
{
Thread threadAskForMenu = new Thread(new ThreadStart(resev));
threadAskForMenu.Start();
}
private void resev()
{
byte[] bytes = new Byte[1024];
string data;
IPHostEntry ipHostInfo=Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress=ipHostInfo.AddressList[0];
IPEndPoint localEP=new IPEndPoint(ipAddress,2114);
Socket listener=new Socket( AddressFamily.InterNetwork,
SocketType.Stream,ProtocolType.Tcp);
try
{
listener.Bind(localEP);
listener.Listen(10);
while(true)
{
Socket handler=listener.Accept();
data=null;
while(true)
{
bytes = new Byte[1024];
int bytesRec=handler.Receive(bytes);
data+=Encoding.ASCII.GetString(bytes);
if(data.IndexOf("<EOF>")>-1)
{
break;
}
}
byte[] msg=Encoding.ASCII.GetBytes(data);
handler.Send(msg);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
catch(Exception ee)
{
Console.WriteLine("Exception:{0}",ee.ToString());
}
}