haydenw Posted December 19, 2011 Posted December 19, 2011 Hello all, I am new to xtremedotnettalk and this is my first thread. I am trying to create a function in vb.net that sends a website header through a socket to the server and returns the response. This is my code. Public Function GetSiteResponse(ByVal IPEndpoint As IPEndPoint, ByVal client As Socket, ByVal header As String) As Byte() client.Connect(IPEndpoint) If client.Connected Then Dim sendbuffer As Byte() = Text.Encoding.ASCII.GetBytes(header) client.Send(sendbuffer, sendbuffer.Length, SocketFlags.None) Dim recievebytes As Byte() = New Byte() {} Do Dim recievebuffer(350) As Byte Dim bytesrecieved As Integer = client.Receive(recievebuffer, recievebuffer.Length, SocketFlags.None) Array.Resize(recievebytes, recievebytes.Length + bytesrecieved) Array.Copy(recievebuffer, 0, recievebytes, recievebytes.Length - bytesrecieved, bytesrecieved) If bytesrecieved < recievebuffer.Length Then Exit Do Loop Return recievebytes Else Return Nothing End If End Function The code doesnt recieve the entire server response. What am i doing wrong? Thanks in advance. Quote
Administrators PlausiblyDamp Posted December 19, 2011 Administrators Posted December 19, 2011 Are you getting any data returned or is it just truncating the response? Quote Posting Guidelines FAQ Post Formatting Intellectuals solve problems; geniuses prevent them. -- Albert Einstein
haydenw Posted December 19, 2011 Author Posted December 19, 2011 I am getting a truncated response. Some but not all data is returned. Quote
Administrators PlausiblyDamp Posted December 20, 2011 Administrators Posted December 20, 2011 IIRC the .Receive method will read whatever response the server has sent so far, if you call it while the server is still streaming data then you will only get a partial result. You would need to keep looping until the call to .Receive returns 0 as this means there was no data lft to be read. http://msdn.microsoft.com/en-us/library/26f591ax.aspx#Y1200 has an example of what would be needed. Quote Posting Guidelines FAQ Post Formatting Intellectuals solve problems; geniuses prevent them. -- Albert Einstein
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.