CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

怎么实现 WINSOCK通信的 局域网调试呢?

楼主aguo2005(海纳百川 有容乃大 )2005-08-19 08:24:30 在 VB / 网络编程 提问

 
   
  各位大哥:  
   
   
   
  程序甲:   (甲电脑IP   =   192.168.0.209     )  
   
  remotehost   =   192.168.0.234   remoteport   =1200        
   
  Option   Explicit  
   
  Private   Sub   Command1_Click()  
   
          Dim   STR   As   String  
   
          STR   =   "XIEXIENI"  
          sckconnect.SendData   STR  
           
  End   Sub  
   
  Private   Sub   Command2_Click()  
          sckconnect.Connect   sckconnect.RemoteHost,   sckconnect.RemotePort  
  End   Sub  
   
   
   
  程序乙:   (乙电脑的IP   =192.168.0.234   )  
   
  LocalPort   =   1200    
   
  Option   Explicit  
   
  Private   Sub   Form_Load()  
          sckserver(0).Bind   sckserver(0).LocalPort   '与本地端口绑定  
          sckserver(0).Listen  
  End   Sub  
   
  Private   Sub   sckserver_ConnectionRequest(Index   As   Integer,   ByVal   requestID   As   Long)  
           
          If   sckserver.Count   =   1   Then  
                  Load   sckserver(1)  
                  sckserver(1).Accept   requestID  
          End   If  
           
  End   Sub  
   
  Private   Sub   sckserver_DataArrival(Index   As   Integer,   ByVal   bytesTotal   As   Long)  
   
          Dim   sdata   As   String  
           
          sckserver(1).GetData   sdata,   vbString  
   
  End   Sub  
   
   
  我所处的网络环境是局域网中,我所用的两台电脑是通过公司的代理服务器   上的网.  
    (乙电脑的IP   =192.168.0.234   )   程序甲:   (甲电脑IP   =   192.168.0.209     )  
   
      请问是我的程序有问题   还是在这中代理服务下   不能够进行通信调试呢?  
   
                                                                              谢谢!!!  
  问题点数:100、回复次数:11Top

1 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-08-19 08:30:30 得分 50

只要是局域网就可以。指定对ip就行  
          sckserver(0).Bind   sckserver(0).LocalPort   '与本地端口绑定  
          sckserver(0).Listen  
  其中   sckserver(0).Bind     多余,去掉,udp协议才用bindTop

2 楼jxfzy(剑心)回复于 2005-08-20 17:06:21 得分 10

其实和广域网是一样的都是通过ip地址来访问  
  没那么麻烦Top

3 楼mosangbike(莫桑比克)回复于 2005-08-20 20:44:35 得分 10

to   zyg0(影子(成功减肥10斤,可给我饿坏了,我要补回来)    
   
  u   wrong  
   
  tcp也需要bind,只不过vb中只默认第一个ip地址,自动替你绑定到这个ip了  
  如果一台电脑有N个IP地址,使用tcp就必须bindTop

4 楼Iris5(新思路)回复于 2005-08-22 13:48:51 得分 0

我有现成的源程序,需要请联系我!  
   
  Top

5 楼aguo2005(海纳百川 有容乃大 )回复于 2005-08-24 16:30:39 得分 0

我在两台机器上了   试了一下,,,乙机器不能收到信号...  
      请多多指教!!  
  Top

6 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-08-24 16:47:59 得分 0

先乙电脑运行   然后   甲电脑运行,试验下  
  Private   Sub   Form_Load()  
          sckserver(0).LocalPort=1200         '与本地端口绑定  
          sckserver(0).Listen  
  End   Sub  
  Private   Sub   sckserver_ConnectionRequest(Index   As   Integer,   ByVal   requestID   As   Long)  
           
    '这个事件本身就是发送连接请求时候触发,不需要判断  
                  Load   sckserver(1)  
                  sckserver(1).Accept   requestID  
   
  End   SubTop

7 楼fxy74(风笑语)回复于 2005-08-24 19:54:59 得分 10

Private   Sub   sckserver_DataArrival(Index   As   Integer,   ByVal   bytesTotal   As   Long)  
   
          Dim   sdata   As   String  
           
          sckserver(1).GetData   sdata,   vbString----sckserver(index).getdata   sdata  
   
  End   Sub  
  Top

8 楼chen1bin2(天涯浪子)回复于 2005-08-26 10:35:29 得分 0

一团糟Top

9 楼chen1bin2(天涯浪子)回复于 2005-08-26 10:41:05 得分 20

思路:  
  甲用tcp     listen侦听  
  乙发连接请求  
  甲响应并判断是否是对应的客户端发出的请求  
  正确则发送正确指令到客户端,客户端显示连接成功  
  否则直接断线  
   
  这样就连接成功了  
  客户端传数据给服务端时直接SendData  
  服务端用GetData收  
  服务端也直接用SendData  
  客户端也是用GetData收  
  OK  
   
  在测试时先用单一的连接  
  成功后再测试数组连接  
   
  如果单一连接不成功说明网络中有阻碍  
  先解决网络问题再试Top

10 楼aguo2005(海纳百川 有容乃大 )回复于 2005-08-26 15:34:57 得分 0

VB中Winsock的UDP协议的例子;  
   
   
  甲机器程序:(甲机器IP   =192.168.0.209)  
   
  Private   Sub   Form_Load()  
            With   sckconnect  
            .RemoteHost   =   "192.168.0.202"   '要连接到的计算机名  
            .RemotePort   =   1200   '要连接到的端口号  
            .LocalPort   =   1201   '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯  
            .Bind   1201   '将该Winsock控制绑定到该本地端口  
            End   With  
  End   Sub  
   
  Private   Sub   sckconnect_DataArrival(ByVal   bytesTotal   As   Long)  
   
            Dim   strData   As   String  
            sckconnect.GetData   strData,   vbString  
            txtOutput.Text   =   strData  
             
  End   Sub  
   
  Private   Sub   txtSend_Change()  
    sckconnect.SendData   txtSend.Text   '发送文本  
  End   Sub  
   
   
  乙机器程序:(乙机器IP   =192.168.0.202)  
  Private   Sub   Form_Load()  
            With   sckserver  
            .RemoteHost   =   "192.168.0.209"   '要连接到计算机的IP地址  
            .RemotePort   =   1201   '要连接到的端口号  
            .LocalPort   =   1200'该Winsock控制将使用的本地端口号,便于其它方与之通讯  
            .Bind   1200'将该Winsock控制绑定到该本地端口  
            End   With  
   
  End   Sub  
   
  Private   Sub   sckserver_DataArrival(ByVal   bytesTotal   As   Long)  
            Dim   strData   As   String  
            sckserver.GetData   strData,   vbString  
          txtOutput.Text   =   strData  
  End   Sub  
   
  Private   Sub   txtSend_Change()  
            sckserver.SendData   txtSend.Text   '发送文本  
  End   Sub  
   
  先运行乙程序,再运行甲程序...在甲程序中txtSend   输入字符后   弹出错误消息:  
  实时错误:40006  
  所需事物或请求错误协议或连接状态.  
   
   
        帮我分析一下原因.....   解决后马上散分....!!   多谢!!  
   
  Top

11 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-08-26 15:53:23 得分 0

这个必须2个程序都运行之后才能在甲中输入,这个是msdn中的例子程序,看帮助把朋友  
  ,你看下你的winsock   控件属性是不是选择的udp,默认是tcpTop

相关问题

  • Win2000的局域网通信
  • 局域网内部如何通信
  • 关于局域网通信的问题
  • 急求局域网通信原理!!!
  • 局域网通信问题 [在线]
  • 怎么跨越局域网通信?
  • 局域网内互发短信通信
  • 局域网游戏通信问题
  • winsock实现局域网文件传输!
  • 一个局域网的email通信程序!

关键词

  • 连接
  • ip
  • 电脑
  • 端口
  • 客户
  • 网络
  • sckserver
  • sckconnect
  • subprivate
  • sdata

得分解答快速导航

  • 帖主:aguo2005
  • zyg0
  • jxfzy
  • mosangbike
  • fxy74
  • chen1bin2

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo