请教各位高手个问题:我想用winsock做TCP协议连接试验,但总是连接不上,我不知道为什么,请各位帮助指点.
我自己写的程序体是:
服务器端:
form_load()
winsock1.localport = 2000
winsock1.listen
winsock1_connectionrequest()
dim a as string
a=msgbox("有新连接,请选择接收或拒绝",4,"连接提示")
if a=6 then
winsock1.accept 这条语句一开始是这么写的,但出错了,后来在accept方法后面加个requestid,但运行后又出错了,  提示是:无效的连接
elseif a=7 then
msgbox("已拒绝")
endif
winsock1_dataarrival()
dim a as string
winsock1.getdata a
text1.text=a
command_click()
winsock1.senddata text2.text
这是我自己写的服务器端的聊天程序
下面是客户端程序体:
command_click()
winsock1.remotehost="xxx.xxx.xxx.xxx"   这里是服务器的IP地址
winsock1.remoteport= 2000
winsock1.connectwinsock1_dataarrival()
dim a as string
winsock1.getdata a
text1.text=a
这是我自己写的个聊天程序客户端.这是我写的两人程序的全部代码,很小,我是想用WINSOCK的TCP协议进行连接(不想用UDP了,想用TCP试验),然后进行聊天试验.但程序写完后,却总是出错.连接不上.就更别说是发送文字了.现在请教各位高手:帮我看看这两个程序,为什么会老出错呢?WINSOCK的用法在书上看过,程序体也是看书后,根据书上的介绍写出来的.但还是出错了.连不了.请大家帮助,找找原因.可以的话,请各位写出正确的代码.多谢!

解决方案 »

  1.   


    Option Explicit'以下代码是一个 Winsock 服务器的基本架构Private Sub Form_Load()
      Winsock1.LocalPort = 4000 '设定本地端口
      Winsock1.Listen           '进行监听端口
    End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
      Winsock1.Close
      Winsock1.Accept requestID  '接收请求
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
      Dim Data As String
      Winsock1.GetData Data  '接收数据
    End Sub
    Private Sub Winsock1_Close()
        Winsock1.Close '如果连接关闭
        Winsock1.Listen '重新监听
    End Sub