![]() |
Click here to advertise with us
|
|
|||||||
| Net / Sockets Components for network and related use |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
||||
|
Hello everyone again.
I was writing my own POP3 client but ran into some problems along the way. I could hunt down one of them by now, which seems to be the key to most of the problems I experienced. I'm using a TCPClient to connect to the server and a NetworkStream to read and write data. This is working great, except one thing: The LIST command delivers me the size of the mail in bytes...but with Lf counted, though, if I start to download the mail with the RETR command, I receive CrLf?! I'm using the simple NetworkStream.Read(bytes(), offset, length) Method to read from the network. This method already delivers CrLf...but the server counts Lf and so the size I received is totally messed up. Code:
'toReceive is an Int32 from the LIST command
'Me.prv_client is the TCPClient
'Me.prv_strm is the NetworkStream from the client
Dim buffer(Me.prv_client.ReceiveBufferSize - 1) As Byte
Dim readAll As Integer = 0
Dim read As Integer = Int32.MaxValue
Do
Array.Clear(buffer, 0, buffer.Length)
read = 0
Try
read = Me.prv_strm.Read(buffer, 0, buffer.Length)
Catch ex As IOException
Me.writeError(ex.Message)
End Try
readAll += read
res.Append(Me.prv_encoding.GetString(buffer, 0, read))
Loop While readAll < toReceive
Anybody has ever seen something like this? Thanks in advance, Bobby
__________________
Don't give TypeCasting Errors a chance, turn ON Option Strict! Greatest Obfuscator ever: EazFuscator (Freeware) Greatest Reflection Tool ever: .NET Reflector (Freeware) with Add-Ins Greatest Introspection Tool ever: Gendarme (GPL) Greatest MySQL FrontEnd ever: MySQL-Front (Shareware), HeidiSQL (GPL) |
|
||||
|
Why not use a StreamReader and StreamWriter with the NetworkStream? You are reading and sending crlf terminated lines of strings all the way with this protocol, ie ReadLine/WriteLine. Multiline responses simply end with a "." line.
__________________
Some useful links: Learning videoes, Code Samples, WMI Code Creator, MSDN, The Code Project, WindowsClient.net, ASP.net, W3 Schools, Regular-Expressions.info, GDI+ FAQ
How to format posts with code blocks etc - present the problem/post properly ![]() |
|
||||
|
Mmmhhh...you're right. I was afraid that there might be false positive with this simple char sequence (CrLf.CrLf), but they must be the last thing I read.
Thanks for your suggestion, I tried it and it's working (of course). Thank you, Bobby
__________________
Don't give TypeCasting Errors a chance, turn ON Option Strict! Greatest Obfuscator ever: EazFuscator (Freeware) Greatest Reflection Tool ever: .NET Reflector (Freeware) with Add-Ins Greatest Introspection Tool ever: Gendarme (GPL) Greatest MySQL FrontEnd ever: MySQL-Front (Shareware), HeidiSQL (GPL) |
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|