2016-05-19 4 views
0

javaコードからドットネットコードに "Hello Server"メッセージを渡そうとしましたが、そのメッセージを読み取れませんでした。ドットネットからメッセージを読み取ることはできますか。C#アプリケーションでjava DataOutputStreamデータを読み取る方法

JAVA:

public static void main(String[] args) 
{ 
try 
{  
Socket s=new Socket("192.168.1.100",6666); 
DataOutputStream dout=new DataOutputStream(s.getOutputStream()); 
dout.writeUTF("Hello Server"); 
dout.flush(); 
dout.close(); 
s.close(); 
} 
catch(Exception e) 
{ 
System.out.println(e); 
} 
} 

ドットネット:私は解決策を見出した

static void Main(string[] args) 
    { 
     System.Net.Sockets.TcpListener serverSocket = new System.Net.Sockets.TcpListener(6666); 
     int requestCount = 0; 
     TcpClient clientSocket = default(TcpClient); 
     serverSocket.Start(); 
     Console.WriteLine(" » Server Started"); 
     clientSocket = serverSocket.AcceptTcpClient(); 
     Console.WriteLine(" » Accept connection from client"); 
     requestCount = 0; 
    try 
    { 
     var reader = new BinaryReader(clientSocket.GetStream()); 
     var value = reader.ReadChar(); 
     Console.WriteLine(" » " + value); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.ToString()); 
    } 

    clientSocket.Close(); 
    serverSocket.Stop(); 
    Console.WriteLine(" » exit"); 

    Console.ReadLine(); 
} 
+0

'reader.ReadCharは()'最大で1文字を読み込み、 。あなたはそれが印刷されているか何か他のことが起こっているのを見ますか? – zapl

+0

これは何も印刷しないので、reader.ReadString()に変更しましたが、それでも何も印刷されません。 – Vengat

+0

誰か助けてください。 – Vengat

答えて

0

、私は推測

string s = string.Empty, NewLine = string.Empty; ; 
        System.IO.StreamReader MyStreamReader=new System.IO.StreamReader(clientSocket.GetStream(), System.Text.Encoding.UTF8); 
        while((NewLine=MyStreamReader.ReadLine())!=null) 
         s+=NewLine+"\r\n"; 
        MyStreamReader.Close(); 
+0

'StreamBuffer'クラスの' ReadToEnd() 'メソッドを使う方が簡単でしょう – chris579

+0

yes、chris ...... – Vengat

関連する問題