最近照着一本书《C#开发典型模块大全》中的QQ企业通编了个一模一样的基于UDP协议的局域网聊天工具,但是在调试时出现了这样一个奇怪现象:
    服务器端(客户端与远程客户端进行通信的中转站)是OK的,能调通,显示出相应的数据,但是在调试客户端时,没有Server.ini文件(该文件用于记录用户注册信息,如果存在该文件,则客户端显示登录窗口,用户进行登录,如果没有则显示注册窗口,用户进行注册)的情况下(如果存在),填完注册模块信息后,点击确定,程序没反应了,既没有生成Server.ini文件,登录窗体的弹出,也没有异常、中断产生;当有Server.ini文件时(我在书中光盘里带的源码里面生成的配置文件),填完登录模块信息后,点击确定,程序同样没反应,程序中各种信息的传递,都是靠一个封装UDP协议的自定义组件来完成。而我运行源码,完全可以理想的运行,没有出现以上情况。并且,我在我那程序的模块中的相应部分插入断点,监视变量,发现服务器IP地址、端口等局部变量的值和源码的中的值一模一样。源码中的UDP协议封装成一个组件,我将该组件和自定义类直接从书中COPY过来的,代码应该不会写错。
    求高手帮忙分析下原因。

解决方案 »

  1.   

    1、你填完注册信息后,点确定,肯定是要与服务器端取得通信,将注册的信息写入服务器端,然后取得服务器的IP地址,再将服务器回复的信息保存在本地的Server.ini文件中。你点确定没有反应,说明你的客户端没有与服务器取得通信。应该是UDP协议出了问题。你可以跟踪调试,看有没有注册成功。2、你直接从别人源码COPY过来组件与类,你有没有将它们加入到你的命名空间里面去?3、我以前也做过跟你类似的程序,你可以下载来参考学习一下。
    http://download.csdn.net/source/2654937