我有一个php应用程序,它使用套接字连接到java应用程序。在java应用程序中,我们将超时设置为10秒。
我需要在应用程序中间处理大量数据。由于当我在处理后尝试使用套接字时,我收到了由对等方重置连接的套接字错误。
现在,当我尝试关闭(socket_shutdown)连接并重新打开连接时,收到错误传输端点未连接到socket_send,socket_receive。非常感谢有关此问题的任何指导。
注意:我尝试使用单例方法进行套接字连接。
答案 0 :(得分:0)
我在PHP应用程序中使用大量套接字连接[每秒10个不同的PHP Apache线程到我自己编写的C ++服务器]。
这是我在PHP中使用的代码,它起作用:
$sIP = gethostbyname('MyDomain');
# create the socket
$iSocket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
if ($iSocket === FALSE )
{
writeLogFile(sprintf("socket_create() failed: %s",
socket_strerror(socket_last_error())));
exit;
}
# load some default values from the app table
$iTimeOut = 180
$iPort = 11211;
socket_set_option($iSocket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => $iTimeOut, "usec" => 0));
$iResult = socket_connect($iSocket, $sIP, $iPort);
if ( $iResult === FALSE )
{
$sError = sprintf("<br>socket_connect(%d) failed with code %d: %s",
$iSocket, $iResult, socket_strerror(socket_last_error($iSocket)));
writeLogFile($sError);
die($sError);
exit;
}
# $sHttpParameter has the value which has to be sent over the socket
socket_write($iSocket, $sHttpParameter, strlen($sHttpParameter));
# for my purpose the answer is just an OK/FAILED
$sAnswer = socket_read($iSocket, 1000);
socket_close($iSocket);
您确定问题不是JAVA应用程序吗?