关于Winsock问题…… 92分!可以加分 我有原程序,mail to [email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说白了就是在192.168.0.1上打开一个端口进行Listen别人从Internet上连接到我的IP时我能够响应这个连接(因为我用Lan连入Internet,所以我这台机器没有IP的。) 你的ip应该就是服务器拨号网络的ip http://www.commacn.com/vbsworld/codeAnalyze/index.htm 我的目的是别人能通过Tcp/Ip协议建立连接连接到我的机器!!!!!!!!!!!!我的机器是通过Lan连入Internet的,所以我用winsock.listen根本无法收到连接请求,如何解决这个问题? Private Sub Command1_Click()'启动Winsock1,使用listen方法,听80端口DoEventsWinsock1.CloseWinsock1.Protocol = sckTCPProtocolWinsock1.LocalPort = 80 Winsock1.ListenText1.Text = "WinSocket状态: " & CStr(Winsock1.State) + "本机IP地址:" + CStr(Winsock1.LocalIP)End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)'在Winsock1的ConnectRequest事件中加入代码Winsock1.CloseWinsock1.Accept requestIDEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)'然后在Winsock1的DataArrival事件中加入代码Winsock1.GetData DataReceived, vbStringText3.Text = DataReceivedpos1 = 0pos2 = 0For i = 1 To Len(DataReceived)If Mid(DataReceived, i, 1) = " " ThenIf pos1 = 0 Thenpos1 = i + 1Elsepos2 = i - 1Exit ForEnd IfEnd IfNextOn Error GoTo ExitThisSubIf pos1 <> 0 And pos2 <> 0 Thenrequestfilename = Mid(DataReceived, pos1 + 1, pos2 - pos1)requestfilename = Trim(Text2.Text) & requestfilenameIf Dir(requestfilename) <> "" ThenElseGoTo NoRequestFileEnd IfEnd IfOpen requestfilename For Input As #1Winsock1.SendData "HTTP/1.0 200 OK" + vbCrLfWinsock1.SendData "MIME_version:1.0" + vbCrLfWinsock1.SendData "Content_Type:text/html" + vbCrLfWinsock1.SendData "Content_Length:" + CStr(LOF(1)) + vbCrLfWinsock1.SendData "" + vbCrLfWinsock1.SendData "" + vbCrLfWinsock1.SendData "" + vbCrLfDo While Not EOF(1)Line Input #1, TDataWinsock1.SendData TDataLoopExitThisSub:Close #1Command1_ClickExit SubNoRequestFile:Winsock1.SendData "HTTP/1.0 200 OK" + vbCrLfWinsock1.SendData "MIME_version:1.0" + vbCrLfWinsock1.SendData "Content_Type:text/html" + vbCrLfWinsock1.SendData "Content_Length:" + CStr(30) + vbCrLfWinsock1.SendData "" + vbCrLfWinsock1.SendData "" + vbCrLfWinsock1.SendData "" + vbCrLfWinsock1.SendData " <br><br>< center >< h2 >欢迎您使用VB WebServer,刚才的地址没有找到!< /h2 >< br >< br >1999年4月10日< br >< br >< a href=mailto:[email protected] >我的信箱< /a >< br >< /center >< br >"Command1_ClickEnd Sub 简单的用winsock应该办不到吧,internet上的朋友只能找到你的代理服务器,找不到你自己的机器除非你在你的代理服务器上也写个软件或者设置某些权限,http好象可以,但是很抱歉,我不太懂 我现在也是通过学校的LAN上网,但是用不了QQ,如果你说的成立,我们自己写出通讯软件不就都和远方的朋友聊上天了,而实际上这是不可能的 这么简单,哈。找我吧,兄弟![email protected] 我也做了类似功能的软件,但是我不知道是不是也有这样的问题发生,我试试看能不能解决,有结果是不是可以发个妹儿告诉我,可以吗?[email protected] 光是listen没用,接收到信息你怎样处理? 都很积极吗。嘻嘻我up up up 如果是转发连接请求,那就要在 那个 *.*.*.1的机器上运行一个请求转发的小程序,Like Proxy. 如果 192.168.0.1不能运行某些程序,你又没有地址,那就没有办法了。但是动态分配地址,分配后就不会再改变了。(重启也不会改变)ping 自己一下可以看到ip,再对这个ip编程 ASP 调用VB DLL的问题 问个弱弱的问题. ??? 在报表中插入图片后可以打印,在打印前能将本地的图片加载到报表中. 高手,如何实现2002版金山词霸的界面? 动态屏蔽最大化按钮? 这是怎么回事啊(在线) 怎样编程实现---改变应用程序的属性????? 判断文件是否上传(FTP) 一个极简单的问题 [求助]我给两百分,越快越好!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! VB,TREEVIEW的一个问题?? 如何让一个不相应Enter的控件响应Enter键!就是在KeyPress事件可以响应Enter键!
别人从Internet上连接到我的IP时我能够响应这个连接
(因为我用Lan连入Internet,所以我这台机器没有IP的。)
连接到我的机器!!!!!!!!!!!!
我的机器是通过Lan连入Internet的,所以
我用winsock.listen根本无法收到连接请求,
如何解决这个问题?
'启动Winsock1,使用listen方法,听80端口
DoEvents
Winsock1.Close
Winsock1.Protocol = sckTCPProtocol
Winsock1.LocalPort = 80
Winsock1.Listen
Text1.Text = "WinSocket状态: " & CStr(Winsock1.State) + "本机IP地址:" + CStr(Winsock1.LocalIP)
End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'在Winsock1的ConnectRequest事件中加入代码
Winsock1.Close
Winsock1.Accept requestID
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'然后在Winsock1的DataArrival事件中加入代码
Winsock1.GetData DataReceived, vbString
Text3.Text = DataReceived
pos1 = 0
pos2 = 0
For i = 1 To Len(DataReceived)
If Mid(DataReceived, i, 1) = " " Then
If pos1 = 0 Then
pos1 = i + 1
Else
pos2 = i - 1
Exit For
End If
End If
Next
On Error GoTo ExitThisSub
If pos1 <> 0 And pos2 <> 0 Then
requestfilename = Mid(DataReceived, pos1 + 1, pos2 - pos1)
requestfilename = Trim(Text2.Text) & requestfilename
If Dir(requestfilename) <> "" Then
Else
GoTo NoRequestFile
End If
End If
Open requestfilename For Input As #1
Winsock1.SendData "HTTP/1.0 200 OK" + vbCrLf
Winsock1.SendData "MIME_version:1.0" + vbCrLf
Winsock1.SendData "Content_Type:text/html" + vbCrLf
Winsock1.SendData "Content_Length:" + CStr(LOF(1)) + vbCrLf
Winsock1.SendData "" + vbCrLf
Winsock1.SendData "" + vbCrLf
Winsock1.SendData "" + vbCrLf
Do While Not EOF(1)
Line Input #1, TData
Winsock1.SendData TData
Loop
ExitThisSub:
Close #1
Command1_Click
Exit Sub
NoRequestFile:
Winsock1.SendData "HTTP/1.0 200 OK" + vbCrLf
Winsock1.SendData "MIME_version:1.0" + vbCrLf
Winsock1.SendData "Content_Type:text/html" + vbCrLf
Winsock1.SendData "Content_Length:" + CStr(30) + vbCrLf
Winsock1.SendData "" + vbCrLf
Winsock1.SendData "" + vbCrLf
Winsock1.SendData "" + vbCrLf
Winsock1.SendData " <br><br>< center >< h2 >欢迎您使用VB WebServer,刚才的地址没有找到!< /h2 >< br >< br >1999年4月10日< br >< br >< a href=mailto:[email protected] >我的信箱< /a >< br >< /center >< br >"
Command1_Click
End Sub
除非你在你的代理服务器上也写个软件或者设置某些权限,http好象可以,但是很抱歉,我不太懂
如果你说的成立,我们自己写出通讯软件不就都和远方的朋友聊上天了,而实际上这是不可能的
找我吧,兄弟!
[email protected]
[email protected]
我up up up
但是动态分配地址,分配后就不会再改变了。(重启也不会改变)
ping 自己一下可以看到ip,再对这个ip编程