'xiansr.2014/2/7 vb.net2010 调试通过
为荔浦等地区用户提供了全套网页设计制作服务,及荔浦网站建设行业解决方案。主营业务为成都网站建设、网站设计、荔浦网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim udpClient As New UdpClient(11000)
Try
udpClient.Connect("127.0.0.1", 11000)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(RichTextBox1.Text)
udpClient.Send(sendBytes, sendBytes.Length)
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)
Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
RichTextBox2.Text = "接收到: " + returnData.ToString()
'Debug.Print(("This message was sent from " + RemoteIpEndPoint.Address.ToString() + " on their port number " + RemoteIpEndPoint.Port.ToString()))
udpClient.Close()
Catch ex As Exception
stop
End Try
End Sub
End Class
服务器先进行
Bind ()绑定服务器的端口
然后BeginReceive接受客户端发送的数据
客户端Bind ()绑定客户端接受和发送数据的端口
SendTo()来发送数据就可以
不需要进行BeginConnect,因为UDP不需要连接
winsock 发送图片,就是发送文件嘛。
不过UDP协议每次最多只能发送8K,所以你要先读取文件,建立以个byte()数组 然后第一次发送是从数组的0-8100这个范围,下次再发送的时候将再从8101开始发送,长度仍未8100就可以了。用一个while 循环来判断文件有没有发送完成就行了。对于接收端,在接收的时候也是要用一个循环来写文件,前提是你必须先把要发送的文件的长度告诉接收端。说的够详细了吧!