另一个方案:
 你可建一个数据库,定时提取数据库的最新数据,将程序发给局域网每个用户.请看:http://www.hirole.com/acev

解决方案 »

  1.   

    有没调用Listen和Accept方法呀?看看书上的例子吧。
      

  2.   

    给个例子你试一试!VERSION 5.00
    Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
    Begin VB.Form Form1 
       ClientHeight    =   5025
       ClientLeft      =   2925
       ClientTop       =   2400
       ClientWidth     =   7215
       BeginProperty Font 
          Name            =   "宋体"
          Size            =   9
          Charset         =   134
          Weight          =   400
          Underline       =   0   'False
          Italic          =   0   'False
          Strikethrough   =   0   'False
       EndProperty
       LinkTopic       =   "Form1"
       ScaleHeight     =   5025
       ScaleWidth      =   7215
       Begin MSWinsockLib.Winsock Winsock2 
          Left            =   1590
          Top             =   2790
          _ExtentX        =   741
          _ExtentY        =   741
          _Version        =   393216
       End
       Begin VB.CommandButton Command2 
          Caption         =   "&connect"
          Height          =   465
          Left            =   5880
          TabIndex        =   3
          Top             =   4410
          Width           =   1185
       End
       Begin VB.TextBox Text3 
          Height          =   465
          Left            =   270
          MultiLine       =   -1  'True
          ScrollBars      =   2  'Vertical
          TabIndex        =   2
          Top             =   3840
          Width           =   6795
       End
       Begin VB.TextBox Text2 
          Height          =   315
          Left            =   2400
          TabIndex        =   1
          Text            =   "1001"
          Top             =   -360
          Width           =   2025
       End
       Begin VB.TextBox Text1 
          Height          =   315
          Left            =   270
          TabIndex        =   0
          Text            =   "user"
          Top             =   30
          Width           =   2025
       End
       Begin MSWinsockLib.Winsock Winsock1 
          Left            =   990
          Top             =   2790
          _ExtentX        =   741
          _ExtentY        =   741
          _Version        =   393216
       End
       Begin VB.TextBox Text4 
          Height          =   3315
          Left            =   270
          Locked          =   -1  'True
          MultiLine       =   -1  'True
          ScrollBars      =   2  'Vertical
          TabIndex        =   4
          Top             =   420
          Width           =   6795
       End
    End
    Attribute VB_Name = "Form1"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = FalsePrivate Sub Command2_Click()
    Winsock1.Close
    Winsock1.RemoteHost = Text1.Text
    Winsock1.RemotePort = Val(Text2.Text)
    Winsock1.Connect   ' Text1.Text, Val(Text2.Text)
    Form1.Caption = Winsock1.State
    End SubPrivate Sub Form_Load()
    'Winsock1.Protocol = sckTCPProtocol
    Winsock2.LocalPort = 1001
    Winsock2.Listen
    'MsgBox Winsock2.LocalIP
    End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
      If KeyAscii = 13 Then
        Call Command2_Click
      End If
    End SubPrivate Sub Text3_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
      KeyAscii = 0
      Winsock1.SendData Text3.Text
      Text4.Text = Text4.Text & Winsock2.LocalHostName & " say:" & Text3.Text  ' & vbCrLf
      Text3.Text = ""
    End IfEnd Sub
    Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long)If Winsock2.State <> sckClosed Then Winsock2.Close
        Winsock2.Accept requestID
        MsgBox "connect!"
    End SubPrivate Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
    Dim ss As VariantCall Winsock2.GetData(ss, vbString, bytesTotal)
    Me.Text4.Text = Me.Text4.Text & vbCrLf & Winsock1.RemoteHost & " say:" & ss & vbCrLfEnd SubPrivate Sub Winsock3_ConnectionRequest(ByVal requestID As Long)
    MsgBox "!!!!!"
    End Sub
      

  3.   

    这时UDP的例子!Private Sub Command1_Click()
      Winsock1.SendData "aaaa!"
    End SubPrivate Sub Form_Load()
      With Winsock1
        .RemoteHost = "176.1.3.68"
        .RemotePort = 1003  '*******通讯的机子的端口要不同的
        .Bind 1004
      End With
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim ss As String
      Winsock1.GetData ss, vbString, bytesTotal
      MsgBox ss
    End Sub
    '*****************************************Private Sub Command1_Click()
      Winsock1.SendData "aaaa!"
    End SubPrivate Sub Form_Load()
      With Winsock1
        .RemoteHost = "176.1.3.68"
        .RemotePort = 1004  '*******通讯的机子的端口要不同的
        .Bind 1003
      End With
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim ss As String
      Winsock1.GetData ss, vbString, bytesTotal
      MsgBox ss
    End Sub
      

  4.   

    对了,做服务器可以不用设 remotehost
      

  5.   

    to newyon() 
    我和你用的方法一模一样!!!
    但我的不行。在Winsock1.SendData "aaaa!"时会出现“所事物或请求的错误协议或连接状态”的错误!!
      

  6.   

    你的winsock控件的协议是设成为udp了吗?
    在FORM_LOAD中加入    .Protocol = sckUDPProtocol控件默认的是TCP协议!你要用UDP的话要自己设!
      

  7.   

    请检查你用的协议对不对。
    然后,发送端只要指明远程地址和端口
    接收端只要指明在哪个断口绑定。
    例如:
    客户端:
    sub form_load()
    winsock1.remotehost="127.0.0.1"
    winsock1.remoteport="999"
    winsock1.senddata "hi,i am sending a msg to you!"
    end sub服务器端:
    sub form_load()
    winsock1.bind 999,"127.0.0.1"
    end sub
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim ss As String
      Winsock1.GetData ss
      MsgBox ss
    End Sub
      

  8.   

    我设置了UDP 协议!
    现在我可以发出去 ,但收不到!
    希望大家和我一起努力解决这个问题!!!
      

  9.   

    客户端口
      .RemotePort = 1004  '*******通讯的机子的端口要不同的
      .Bind 1003服务器端口号
      .RemotePort = 1003  '*******通讯的机子的端口要不同的
      .Bind 1004两个端口要相对的
    客户机的 remoteport 是服务器的 bind 反之也是这样!
      

  10.   

    呵呵,你的服务器端肯定没有listen 方法
    如果是这样我可以帮你解决
      

  11.   

    UDP不用listen的,
    ==================
    服务器端:
    Private Sub Form_Load()
    Winsock1.Bind 1003, "127.0.0.1"
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim ss As String
      Winsock1.GetData ss, vbString, bytesTotal
      MsgBox ss
    End Sub客户端:
    Private Sub Command1_Click()
      Winsock1.SendData "aaaa!"
    End SubPrivate Sub Form_Load()
      With Winsock1
        .RemoteHost = "127.0.0.1"
        .RemotePort = 1003  
        .Bind 1004
      End With
    End Sub协议都设成:sckUDPProtocol
    ==============================
    ok!