Bug #15040 Updated: Socket

From: Date: Tue, 15 Jan 2002 19:38:06 +0000
Subject: Bug #15040 Updated: Socket
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-77164@lists.php.net to get a copy of this message
ID: 15040 User updated by: webmaster@weathermetrics.com Reported By: webmaster@weathermetrics.com Status: Open Bug Type: Sockets related Operating System: Windows NT 4.0 PHP Version: 4.1.1 New Comment: Ok, here's what MS has to say about what causes that error: WSAECONNRESET (10054) Connection reset by peer. An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket.) This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET. This is what I thought was happening, but why does my script end before my program has time to process it. I should make note that I have one script opening a page with a php script on another webserver and this script is the one that is having problems opening the UDP connection. Could this have anything to do with it. Previous Comments: ------------------------------------------------------------------------ [2002-01-15 14:26:20] webmaster@weathermetrics.com It didn't get the second half of my last statement, the fflush DIDN'T work either. This is still an ongoing problem. Thanks, Eric Levy ------------------------------------------------------------------------ [2002-01-15 13:28:16] webmaster@weathermetrics.com I added $w=fflush($fp); after sending the line $w=fputs ($fp, URLUnEncode($Commands["DATA"])); ------------------------------------------------------------------------ [2002-01-15 11:20:34] webmaster@weathermetrics.com I'm sorry I should have made this clear. This was a pre-existing VB App that I have been running for a year now doing the same procedure from embedded clients. It is a possibility I am not fully understanding the life of a PHP socket vs. other socket types. Does anyone have any documentation on the life of a PHP socket. It seems to me like the socket is dyeing before sending the message. Thanks, Eric Levy ------------------------------------------------------------------------ [2002-01-15 07:18:37] sander@php.net Are you sure this is a problem with PHP and not with Visual Basic??? ------------------------------------------------------------------------ [2002-01-15 03:43:37] webmaster@weathermetrics.com I keep getting the following error: "Microsoft Visual Basic Run-time error '10054': THe connection is reset by remote side" when I try to connect a PHP UDP socket to a VB Application. I am trying to dump a small packet of data to the VB program using the following PHP code: $port=getPort($t); $host=getHost($t); $prot=getProtocol($t); $fp = fsockopen ($prot.$host, $port, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br>\n"; } else { $w=fputs ($fp, URLUnEncode($Commands["DATA"])); } } if (!$fp) { //$w=socket_set_blocking(TRUE); //sleep(30); $w = fclose ($fp); } The problem is the socket works fine the first time, but the second time the script is run (~1 min between successive runs) the application gives this error. It seems to me the script is closing before it is done sending the data. I tried various socket timeouts, setting the blocking to true and false, and putting a pause in. Nothing seemed to work. Is it because only the script is sending data, I have not seen any PHP examples, where the script is the only side sending data. Thanks, Eric Levy ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=15040&edit=1

« previous php.dev (#77164) next »