为应付老师的作业,100分求简单UDP聊天程序。越简单越好!!!

yuanyu368 2004-12-21 10:41:21
我是做delphi的,我妹妹要我帮做课设,用VB,所以,只有求论坛上面的兄弟们了,
就是想要一个能对话的程序,基于udp的,代码越少越好,最好几句话,能把功能实现就行,来应付变态老师的,呵呵,
我的邮箱是yuanyu702@163.com
要源码,收到就给分
...全文
193 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CriedSky 2005-04-30
  • 打赏
  • 举报
回复
请教wumylove1234,按照你的UDP例子试了,为什么frmPeerA触发txtSend_Change事件时发生Invalid Argument
yuanyu368 2004-12-25
  • 打赏
  • 举报
回复
到此为止,以下的不接受答案了,
TO lazygod(Use any item) 我收到程序了

还有其它各位,我整理一下程序后再来结帖.....

谢谢 ^_^
lazygod 2004-12-24
  • 打赏
  • 举报
回复
我早期的程序,发给你了!
dongle2001 2004-12-22
  • 打赏
  • 举报
回复
来晚一步
wumylove1234 2004-12-22
  • 打赏
  • 举报
回复
摘自MSDN!
wumylove1234 2004-12-22
  • 打赏
  • 举报
回复
创建 UDP 应用程序比创建 TCP 应用程序还要简单,因为 UDP 协议不需要显式的连接。在上面的 TCP 应用程序中,一个 Winsock 控件必须显式地进行“监听”,另一个必须使用 Connect 方法初始化连接。

UDP 协议不需要显式的连接。要在两个控件中间发送数据,需要完成以下的三步(在连接的双方):

将 RemoteHost 属性设置为另一台计算机的名称。


将 RemotePort 属性设置为第二个控件的 LocalPort 属性。


调用 Bind 方法,指定使用的 LocalPort。(下面将详细地讨论该方法。)
因为两台计算机的地位可以看成“平等的”,这种应用程序也被称为点到点的。为了具体说明这个问题,下面将创建一个“聊天”应用程序,两个人可以通过它进行实时的交谈。

要创建一个 UDP 伙伴,请按照以下步骤执行:

创建一个新的 Standard EXE 工程。


将缺省的窗体的名称修改为 frmPeerA。


将窗体的标题修改为“Peer A”。


在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerA。


在“属性”页上,单击“协议”并将协议修改为 UDPProtocol。


在窗体中添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。


为窗体增加如下的代码。
Private Sub Form_Load()
'控件的名字为 udpPeerA
With udpPeerA
'重点:必须将 RemoteHost 的值
'修改为计算机的名字。
.RemoteHost= "PeerB"
.RemotePort = 1001 '连接的端口号。
.Bind 1002 '绑定到本地的端口。
End With
frmPeerB.Show '显示第二个窗体。
End Sub

Private Sub txtSend_Change()
'在键入文本时,立即将其发送出去。
udpPeerA.SendData txtSend.Text
End Sub

Private Sub udpPeerA_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerA.GetData strData
txtOutput.Text = strData
End Sub

要创建第二个 UDP 伙伴,请按照以下步骤执行:

在工程中添加一个标准窗体。


将窗体的名字修改为 frmPeerB。


将窗体的标题修改为“Peer B”。


在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerB。


在“属性”页上,单击“协议”并将协议修改为“UDPProtocol”。


在窗体上添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。


在窗体中添加如下的代码。
Private Sub Form_Load()
'控件的名字为 udpPeerB。
With udpPeerB
'重点:必须将 RemoteHost 的值改为
'计算机的名字。
.RemoteHost= "PeerA"
.RemotePort = 1002 '要连接的端口。
.Bind 1001 '绑定到本地的端口上。
End With
End Sub

Private Sub txtSend_Change()
'在键入后立即发送文本。
udpPeerB.SendData txtSend.Text
End Sub

Private Sub udpPeerB_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerB.GetData strData
txtOutput.Text = strData
End Sub

如果要试用上面的例子,按 F5 键运行工程,然后在两个窗体的 txtSend TextBox 中分别键入一些文本。键入的文字将出现在另一个窗体的 txtOutput TextBox 中。

tztz520 2004-12-21
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Winsock1.Close
Winsock1.Protocol = sckUDPProtocol
Winsock1.RemotePort = 10300
Winsock1.Bind 10301
Winsock1.RemoteHost = "192.168.1.12" '这是目标机的IP
Winsock1.SendData "这是发送信息" '发送信息
End Sub

Private Sub Form_Load()
Winsock1.RemotePort = 10301
Winsock1.Bind 10300
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim st As String
Winsock1.GetData st
Text1.Text = st
End Sub

'放到两台机器上就可以通信了
aohan 2004-12-21
  • 打赏
  • 举报
回复
先UP 一下

743

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧