よく、私はポート4でサーバーとして動作しているC#アプリケーションで作業しています。クライアントとして機能する私のWebサイトのPHPスクリプト。サーバーに接続できますが、サーバーまたはクライアントがデータを送信しようとしたときに接続できます。データは乱数と記号だけになります。phpとc#tcp通信の問題
$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#:
PHP以下 スクリプト
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);
}
}
}
関連しないヒント:[usingステートメント](http://msdn.microsoft.com/en-us/library/yh598w02.aspx)を使用して、ストリームやソケットなどのリソースが正しく閉じられるようにします。さて、 "乱数と記号"によって、あなたはそれぞれのラン(ランダム)ごとに違うのですか?それらは常に同じですが間違っていますか? –
私はあなたの変更を元に戻しました(あなたは質問全体を削除しました!)。それは、同じ問題を抱えている可能性のある他の人たちへの将来の参考になるようにしましょう。これは、StackOverflowのすべてです。 ;) – netcoder