小D初学VB,今天用WINSOCK控件编写了一个局域网的CHAT小程序!
但是运行过程出现问题一下问题:
1:发送信息时出错,提示“运行时错误‘10054’,连接由远程端重新设置!”
2:按F1没有出现README.TXT帮助文件!
希望各位高人多多指点,非常感谢你的帮助!以下是我的源代码:
Private Sub Command1_Click()
On Error GoTo errdeal
With Winsock1
.RemoteHost = Trim(txtremoteip.Text)
.RemotePort = Trim(txtremoteport.Text)
.LocalPort = Trim(txtlocalport.Text)
End With
Text4.SetFocus
Exit Sub
errdeal:
MsgBox "winsock failed to establish connection with remote server", vbCritical
End Sub
Private Sub Command2_Click()
Text5.Text = ""
With Text4
.Text = ""
.SetFocus
End With
End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
ChDir App.Path
Shell "notepad.exe readme.txt", vbNormalFocus
End If
End SubPrivate Sub Form_Load()
Show
MsgBox "winsock for UDT chat,F1 for help", vbCritical
txtremoteip = Winsock1.LocalIP
End SubPrivate Sub Text4_KeyPress(KeyAscii As Integer)
Static last_line_feed As Long
Dim new_line As String
If Trim(Text4) = vbNullString Then last_line_feed = 0
If KeyAscii = 13 Then
new_line = Mid(Text4, last_line_feed + 1)
last_line_feed = Text4.SelStart
Winsock1.SendData new_line
End If
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim new_text As String
Winsock1.GetData new_textEnd Sub
但是运行过程出现问题一下问题:
1:发送信息时出错,提示“运行时错误‘10054’,连接由远程端重新设置!”
2:按F1没有出现README.TXT帮助文件!
希望各位高人多多指点,非常感谢你的帮助!以下是我的源代码:
Private Sub Command1_Click()
On Error GoTo errdeal
With Winsock1
.RemoteHost = Trim(txtremoteip.Text)
.RemotePort = Trim(txtremoteport.Text)
.LocalPort = Trim(txtlocalport.Text)
End With
Text4.SetFocus
Exit Sub
errdeal:
MsgBox "winsock failed to establish connection with remote server", vbCritical
End Sub
Private Sub Command2_Click()
Text5.Text = ""
With Text4
.Text = ""
.SetFocus
End With
End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
ChDir App.Path
Shell "notepad.exe readme.txt", vbNormalFocus
End If
End SubPrivate Sub Form_Load()
Show
MsgBox "winsock for UDT chat,F1 for help", vbCritical
txtremoteip = Winsock1.LocalIP
End SubPrivate Sub Text4_KeyPress(KeyAscii As Integer)
Static last_line_feed As Long
Dim new_line As String
If Trim(Text4) = vbNullString Then last_line_feed = 0
If KeyAscii = 13 Then
new_line = Mid(Text4, last_line_feed + 1)
last_line_feed = Text4.SelStart
Winsock1.SendData new_line
End If
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim new_text As String
Winsock1.GetData new_textEnd Sub
解决方案 »
- 关于tab跳动光标的问题?
- Open fn For Output Shared As #1 Print #1, "..." 能不能不换行
- ~~~~666老师的代码有点问题~~~~
- VB中随机文件中记录的删除
- 请教如何水晶报表中设置打印数据条件!(我是在vb中用的crystal 8.0)
- 我知道很多人喜欢用mshflexgrid,但这个grid控件是无法直接修改其中的数据的,那为何还有很多人爱用.
- 在win2000用vb创建ado的对象,连接也成功,怎么实现于DataGrid的绑定
- vb程序中如何为后台的access数据库设置密码?
- 我还要放!!!!!!!!111
- 一个有关VB通讯的问题.
- 如何制作IE插件
- VB 主要用户是那些公司? 这些公司之间的人员流动!
2:按F1没有出现README.TXT帮助文件!//你没有安装msdn吧
同时如果用tcp协议,一个做服务器,一个客户端
如果ucp则对等
同时你的程序中缺乏winsock.listen事件,和winsock.connect世间,此外在Winsock1.SendData new_line事件前最后先判断此时winsock是否处于连接状态,再发送数据你可以看看vb网络编程中的faq 看看着方面的例子
比如http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=150624
2.
不用SHELL,用这个吧
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongShellExecute Me.hWnd, vbNullString, app.path & "\README.TXT",vbNullString,vbNullString,1
1:发送信息时出错,提示“运行时错误‘10054’,连接由远程端重新设置!”
的错误,后来我又加了一个WINSOCK,且用两个FORM分别作为客户端和服务端!每个上面一个,编译运行后OK!
至于第2个问题,还没很好解决,不过不是很大关系!
最后谢谢大家帮忙!