2013-05-08 3 views
0

하나는 서버이고 다른 하나는 VB.net으로 작성된 클라이언트입니다. 둘 다 동일한 컴퓨터에서 실행되고 있습니다 (127.0.0.1 사용) 클라이언트는 "farid" 과 같이 서버에 5 바이트 데이터 만 전송하지만 TCP 수신기가있는 서버 앱은 65534 바이트의 대용량 데이터를 수신합니다. 수신 된 데이터를 인쇄하려고했는데 앞에 빈 공간이 많아서 "farid"가 인쇄되었습니다. TCP 클라이언트가 올바른 데이터를 전송한다고 확신하지만 수신자가 데이터를 수신 할 때 어떤 일이 발생했는지 전혀 알지 못합니다 .TCP 수신자가 거대한 데이터를 수신합니다.

+3

당신이 당신의 클라이언트와 서버가 무엇을 보여주기 위해 몇 가지 코드를 게시 할 수 있습니다. – James

+0

TCP가 무겁습니다 ... 현재 크기를 고려하지는 않지만 ... http://stackoverflow.com/questions/3613989/what-of-traffic-is-network-overhead-on-top-of -http-s-requests – FlavorScape

+0

소켓을 통해 어떤 프로토콜을 사용하고 있습니까? 귀하가 보내는 데이터 샘플을 게시 할 수 있습니까? – Kyght

답변

1

당신)이의 getMessage (에서 루프를받는 것이 ... =

\에서 어떤 끔찍한 관행과 실수를 가지고 사용하고 찾아야한다 튜토리얼 더 같은 : 글로벌 문자열을 사용

Private Sub getMessage() 
    Dim inStream(10024) As Byte 
    serverStream = clientSocket.GetStream() 
    While True 
     Dim bytesRead As Integer = serverStream.Read(inStream, 0, inStream.Length) 
     readData = System.Text.Encoding.ASCII.GetString(inStream, 0, bytesRead) 
     msg() 
    End While 
End Sub 

* "readData"는 꽤 나쁜 디자인입니다!

당신은 밀접하게 여기 내 기사를 읽어야 A Peer-To-Peer LAN Chat Application in Visual Basic.Net using TcpClient and TcpListener

관련 문제