关于Winsocket通信的两个问题(50分)

  • 主题发起人 主题发起人 ankyhe
  • 开始时间 开始时间
A

ankyhe

Unregistered / Unconfirmed
GUEST, unregistred user!
我想请教两个问题:
[:)]1。假设我正在用您编写的软件传文件,假设客户端或服务器端有一端因为异常或被使用者
强制关闭,请问在另一端能收到消息吗?如果能,该消息是什么呢?
2。假设我想扫描一个IP范围内有哪些电脑正在使用您的软件,我打算向每个IP的电脑发送
一个消息,例如MP_USEORNO(const USEORNO:='12345';),请问假设某个IP的电脑没有开机
或者是未使用您的软件,发送MP_USEORNO的主机会收到消息吗?如果会,消息是什么呢?
 
准确的说,收到的不是消息,而是错误码
1. 错误码:10054
说明:连接被远程端重置
2. 错误码:10061
说明:连接被拒绝 (如果远程端没有运行这个软件)
错误码:11001
说明:主机未知 (如果远程端没有开机)
 
补充:
1、如果客户端或服务器端被关闭或有异常,read或write时返回值为“0”;
2、如果要给某个ip的主机的软件发送消息,必须要知道ip和port,如果软件没有被使用,
应该是在发送消息前的连接中返回连接被拒绝(connnect refuse)的错误,错误码=10061
应该是连接超时。
 
谢谢二位的答案,但我还想知道这两个异常怎么捕捉,在哪儿捕捉?
 
如果你是用TClientSocket控件的话,在OnError事件中可以得到错误码.
 
以前的贴子上的,转载一下:

在SOCKET出现错误时,该事件被触发,常见错误代码为:
10004 中止操作
10013 访问被拒绝
10014 地址错误
10022 参数错误
10024 SOCKET打开过多
10035 无可获取的资料
10036 一个堵塞操作进行中
10037 操作执行中
10038 在一个非法的scoket上进行操作
10039 目标地址丢失
 
谢谢你们,总预搞定了!
 
后退
顶部