第一:使用UDP协议,因为不知道对方是否开启程序所以需要预先发送几个字节数据如果对方收到,就会返回发送一些数据可是问题在于即使对方没有运行客户端我发送一些信息出去在我的WINSOCK的DataArrival事件中也会收到数据.能否让自己发出的数据自己收不到?问题二:我需要发送并接收多种格式的数据.如何判断接收到的数据格式??????

解决方案 »

  1.   

    1,你可以在收到服务器的测试信息后,发送特殊的信息给服务器,比如“I'm OK!"等,这样服务器判断这个信息的内容不就可以检测到了吗?2。实际上,你收到的信息应该是一个byte数组。所以怎么格式化是你自己程序应该考虑的,我想你肯定需要Copymemory这样的API函数。信息完全应该是自己组织的。你可以附加一些信息做位标志。这也可以称为自己的协议吧,呵呵我的做法一般是前几位作为标志,这样可以避免信息的混淆。
    如发普通消息:“MSSG”+消息,发送文件请求,"FILE"+文件长度+文件名称
    发送关机命令:"EXIT",前4位固定为信息类型。这样一般不会出错。以上是我VC编程的一点体会,不一定适合VB,但应该可以试试。
      

  2.   

    我知道返回一些数据.但问题是:
    我这个WINSOCK不仅要来做发送端也要来做接收端的.有可能是对方先发送一个数据让我接收.
    我接收到了照样要返回数据给对方.
    所以这就比较麻烦了.比如说对方发送一个数据给我.我实在判断不出这个请求数据究竟是对方发给我的还是我发给对方而对方无法接通自己发给自己的.
    第二个我觉得不错.解决方法可行.谢谢
      

  3.   

    服务器端发服 "server",当客户机接收据后,给服务器返回 "client" ,
    如果服务器收到的是“client”则对方已经开机。