Ok, naja, ich arbeite an einer C# -Anwendung, die als Server an Port 4 fungiert. Und ein PHP-Skript auf meiner Website als Client. Es kann eine Verbindung zum Server herstellen, wenn der Server oder Client versucht, Daten zu senden. Die Daten erweisen sich nur als Zufallszahlen und Symbole. Scripts unterphp und C# tcp Kommunikationsproblem
PHP:
$msg = $host + " connected;";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $host, 4);
socket_write($socket, $msg, strlen($msg));
socket_close($socket);
C#:
while (heartbeat == false)
{
if (listener.Pending())
{
heartbeatC = listener.AcceptTcpClient();
//heartbeatS = listener.AcceptSocket();
NetworkStream heartBeatStream = heartbeatC.GetStream();
string heartbeatEP = heartbeatC.Client.RemoteEndPoint.ToString();
string heartbeatIP = heartbeatEP.Remove(heartbeatEP.IndexOf(':'), heartbeatEP.Length - heartbeatEP.IndexOf(':'));
if (heartbeatIP == Dns.GetHostAddresses("***.********.com")[0].ToString())
{
dottime.Enabled = false;
Console.WriteLine("\nHeartbeat.");
bool heartbeatR = false;
while (heartbeatR == false)
{
if (heartBeatStream.DataAvailable)
{
//StreamReader sr = new StreamReader(heartBeatStream);
byte[] message = new byte[1024];
int bytesRead = 0;
bytesRead = heartbeatC.Client.Receive(message);
ASCIIEncoding encoder = new ASCIIEncoding();
string msg = encoder.GetString(message);
Console.WriteLine("Server: " + msg);
heartbeatR = true;
}
}
heartbeat = true;
}
else
{
heartbeatC.Client.Disconnect(true);
}
}
}
Nicht verknüpfter Tipp: Verwenden Sie die [using-Anweisung] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx), um sicherzustellen, dass Ressourcen wie Streams und Sockets korrekt geschlossen werden. Nun, mit "Zufallszahlen und Symbolen" meinen Sie, dass sie bei jedem Lauf anders sind (zufällig), oder sie sind immer gleich, aber falsch? –
Ich habe Ihre Änderungen rückgängig gemacht (Sie haben die ganze Frage gelöscht!). Lassen Sie es, für zukünftige Bezugnahme auf andere, die das gleiche Problem haben könnten. Darum geht es bei StackOverflow. ;) – netcoder