winsock接收rtf文件的问题,高手帮忙!!
小弟做了客户端和服务器的程序,是基于winsock的,下面是代码:
客户端:
Private Sub Command1_Click()
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 3000
Winsock1.Connect
End Sub
Private Sub Command5_Click()
Open "c:\test.rtf" For Binary As #1
Put #1, 1, RichTextBox1.TextRTF
Close #1
Dim a() As Byte
Open "c:\test1.rtf" For Binary As #1
ReDim a(1 To LOF(1))
Get #1, , a
Close #1
Winsock1.SendData a
End Sub
服务器端程序:
Private Sub Form_Load()
Winsock1.LocalPort = 3000
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim a() As Byte
ReDim a(1 To bytesTotal)
Winsock1.GetData a
Open "c:\b.rtf" For Binary As #1
Put #1, 1, a
Close #1
End Sub
现在问题是这个样子的:如果客户端发送的是字符串,在服务端的接收到数据后文件"c:\b.rtf"里面可以看到是正常是文件;如果富文本框RichTextBox1里面包含了图片后,当发送的时候同时保存了该文件的一个副本"c:\test1.rtf",文件和test.rtf一样没区别,但是在服务前端接收的文件"c:\b.rtf"里面显示的很多数字。另外如果发送doc,xls等文件,如果里面含有图片的话,在接收端也显示不出正确的格式来。我该怎么获取原始文件,或者怎么接收使得"c:\b.rtf"文件和原始文件一样。请高手帮忙!!