3 对于一般的c/s程序来说 都不应该光有数据项,应该是建一个结构。我举一个例子{请求码、返回码、长度、数据}对于不同的操作赋予不同的请求码,对于不同的错误赋予不同的错误码~~ 其实,是否在vb中真的建这个结构倒是不重要,关键是你设计时要有这个思想~~ 引入这个观念后你的有些问题也可以解决的~~
7.相对路径是app.path

解决方案 »

  1.   

    5.winsock有一个事件是close可以响应断开这个事件的~~
      

  2.   

    6.winsock有个属性state可以看状态的~~
      

  3.   

    1、winsock控件有错误事件,至于连上还是没有连上,有state属性来判断,每一个值的函数msdn里都有,如果发生错误,错误事件就会触发,而且会返回错误的编号和描述。
    2、绑定端口也是一样,你可以用on error goto errcode之类为绑定操作专门写一个函数以确定端口是否空闲。
    3、传不同的数据你可以使用前缀,比如在信息包头上加上一个标识:#FILE#表示文件,#MESS#表示消息,具体怎么样你可以根据自己的需要决定。
    4、窗体和窗体之间的联系最好使用全局变量,模块间的耦合要只限于数据耦合,否则无论对程序的修改还是扩展都是个很大的麻烦
    5、如果基于TCP连接,那么断线时也会触发事件,如果是基于UDP,那么就要定时询问了
    6、还是和上面一样,TCP连上状态会变,UDP则要对方发回确认消息以判断对方是否在线
    7、app.path表示应用程序所在的路径
    8、可以啊,很多控件都可以存放图片,image,picturebox等等
    9、80个image控件里都保存了图片,这些图片是写入exe文件中,所以在执行时它们会被一次全部读取,速度当然慢了
      

  4.   

    对于以上回答有些不让人满意,能否贴点代码出来。
    我没有MSDN。
    1.当一方如果接受了连接.另一方发生connect事件.而服务器方的connect事件并不发生,所以这个事件好像对服务方没有用.
       当连接请求发出时tcpclient.connect.如果对方没有回应.本方发生了什么事件.怎么知道没连上.这时候跟本也没有错误发生.
       打个比方说联众.当客户端发出请求.服务方没有开启.或你跟本没有上网.他会提求无法连到网络.
      

  5.   

    3,当发送方发送文件时.接收方按二进制数组接收文件.当发送聊天信息时,按字符串接收数据.
    这要调用getgata方法.调用的类型这时就已经确定了.怎么样能得知发的是文件就用二进制数组,发的是聊天信息,就用字符串接收.
    不知道这样对不对.
    接收数据时开始都用二进制数组.判断文件头部.
    然后确定用什么方式接收.再一次调用getdata 这样对吗?
    在一个DataArrival事件中,能否连续用两次getdata 这样两次接收的信息一样么?