Window服务执行Socket服务器端程序,出错!请问如何执行?(问题解决就结贴)

showmetoyou 2006-03-06 03:19:11
我在写一个Window服务,里面是一个Socket服务器端侦听程序!目的是随时接收客户端的连接,
现在遇到一个问题,我把侦听程序写在window服务的OnStart里,但我是系统的服务中启动这个服务时,报错!服务启动不了,我现在想应该是启动不了的!因为侦听程序是一个阻塞的程序,没有客户端连接是OnStart方法里的程序是不会结束的,所以启动出错!
请问高手,如何解决这个问题呢?Socket侦听程序应该怎么处理呢?
...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
showmetoyou 2006-03-07
  • 打赏
  • 举报
回复
谢谢各位!问题解决了!原来我IIS开着,所有Socke使用80端口时报的错!
showmetoyou 2006-03-06
  • 打赏
  • 举报
回复
To lljfl(Dos):如果没有客户端连接,说明根本就没有开始接收数据,这就不存在阻塞的问题.
不是这样吧!Socket服务器端程序是一个阻塞的程序啊!没有客户端连接时,它就阻塞在listen这!只有客户端连接时,才执行开始接收数据.......
Sangel 2006-03-06
  • 打赏
  • 举报
回复
服务必须有在做事情才行··否则windows会自动终结你的服务··
你可以在服务里添加一个Timer··在里面做事情
lljfl 2006-03-06
  • 打赏
  • 举报
回复
你可以用一个线程打开侦听程序,如果服务的启动时间过长的话,会认为启动失败的,如果没有客户端连接,说明根本就没有开始接收数据,这就不存在阻塞的问题.
showmetoyou 2006-03-06
  • 打赏
  • 举报
回复
是不是端口已经打开了?
我不是很清楚,能说明白点嘛?你说的端口是Socket使用的端口嘛?
为了穿透防火墙,我使用的是80端口,这个有问题嘛?

我现实是觉得,socket是在阻塞的Listen,所以OnStart里面的内容不能执行完成!所以服务启动失败!我的想法不对嘛?

如果有时间的话,麻烦加我msn:showmeself@hotmail.com,或者qq:39197106!
谢谢!
lidong6 2006-03-06
  • 打赏
  • 举报
回复
没有客户端连接并不会导致出错.

看看错误提示,是不是端口已经打开了?

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧