簡體   English   中英

從Java服務器套接字在C#客戶端套接字中接收數據時出錯

[英]Error in receiving data in C# client socket from java server socket

我正在使用C#客戶端套接字和Java Server套接字創建套接字連接。 當我從客戶端套接字發送數據時,服務器套接字正在正確接收該數據。 但是,當我嘗試將數據從服務器套接字發送回客戶端套接字時,它在接收數據時就掛在了客戶端上。

客戶端代碼(在C#.net中)

           clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

            string hostName = System.Net.Dns.GetHostName();
            System.Net.IPHostEntry hostEntry = System.Net.Dns.GetHostEntry(hostName);
            System.Net.IPAddress[] ipAddresses = hostEntry.AddressList;
            System.Net.IPEndPoint remoteEP =
                new System.Net.IPEndPoint(ipAddresses[ipAddresses.Length - 1], port);
            clientSocket.Connect(remoteEP);
             string sendData = inputFilePath;
                    byte[] byteDataSend = System.Text.Encoding.ASCII.GetBytes(sendData);
                    clientSocket.Send(byteDataSend);

                    int receivedBufferSize = clientSocket.ReceiveBufferSize;
                    byte[] recivedData = new Byte[receivedBufferSize];
                    int receivedDataLength = clientSocket.Receive(recivedData);
                    string stringData = Encoding.ASCII.GetString(recivedData, 0, receivedDataLength);
                    textFilePath = stringData;
                    Console.Write(stringData);
                    clientSocket.Close();

服務器套接字代碼(在Java中)

           Socket connection = server.accept();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
            fileName = in.readLine();
            convertedFile =runConverter.convertDocumet(fileName);
            byte[] sendingData = convertedFile.getBytes("US-ASCII");
            DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
            dos.write(sendingData, 0, sendingData.length);

告訴我是什么問題?? 請幫忙...

這種C#代碼的常見問題是同步接收。
我總是建議進行異步讀取,如該答案所示

我不太肯定這是問題的根源,但是如果您通過記錄一些日志來實現異步接收,則很有可能解決問題或使問題更明顯。

同步接收掛起確實表明Java沒有將數據發送到c#正在偵聽的同一套接字,因此仔細檢查這些端點也可能是一個好主意。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM