Ich versuche, Client-Server-Kommunikation einzurichten, wobei C# die Serverseite und Java die Clientseite ist. Die Verbindung ist erfolgreich und ich bin in der Lage, eine Zeichenfolge von C# nach Java zu senden. Ich habe jedoch Probleme beim Senden einer Zeichenfolge von Java nach C#. Der Server erhält keinen Eingang.Java Client C# Server sendet das Problem
Mein Code ist folgende: Server Side C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace ServerToJava
{
class Program
{
static void Main(string[] args)
{
TcpListener serverSocket = new TcpListener(5678);
int requestCount = 0;
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
Console.WriteLine(" >> Server Started");
clientSocket = serverSocket.AcceptTcpClient();
Console.WriteLine(" >> Accept connection from client");
requestCount = 0;
NetworkStream networkStream = clientSocket.GetStream();
try
{
requestCount = requestCount + 1;
string serverResponse = "Last Message from client server This is a test";
Byte[] sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0, sendBytes.Length);
Console.Write ("ReadClient Thread started");
int length = networkStream.ReadByte();
byte[] buffer = new byte[length];
int size = networkStream.ReadByte();
byte[] buff = new byte[size];
using (var memoryStream = new MemoryStream(buff,false)) {
using (var streamReader = new StreamReader(memoryStream, Encoding.UTF8)) {
var message = streamReader.ReadLine();
buff = Encoding.UTF8.GetBytes(message);
networkStream.Read(buffer, 0 ,buffer.Length);
Console.Write (message);
networkStream.Flush();
}
}
}
catch (Exception ex)
{
}
clientSocket.Close();
serverSocket.Stop();
Console.WriteLine(" >> exit");
Console.ReadLine();
}
}
}
Client Side Java
OutputStream out;
Socket s = new Socket("127.0.0.1", 5678);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
out= s.getOutputStream();
out.write('a');
System.exit(0);
Ok ich es geändert. Allerdings kann ich immer noch nicht schreiben auf Server – christine
Das ist bereits in meinem Java-Code geschrieben – christine
Auch habe ich in Beispielen für Java-Server festgestellt, dass sie "localhost" anstelle von "127.0.0.1" verwenden, versuchen Sie es für C# Server –