figured id top-post on this one, since the original message was so long.. i recommend debugging with a tool like wireshark. that way you can see whats in the packets going over the wire and hopefully it will lead to a solution. -nathan On Dec 19, 2007 12:54 AM, vixle <mentard@xxxxxxxxx> wrote: > this code doesn't interact with php client while with c++ based one it > works just fine. > .....anybody? > #include <stdio.h> > #include <winsock2.h> > #include <iostream> > #include <process.h> > using namespace std; > int i = 0; > int ar = 0; > const int is = 50; > SOCKET stack[is]; > void clientserve(void* ws) > { > SOCKET wsocket = *(SOCKET*)ws; > int fgotused = 0; > char sendbuf[70]; > char recvbuf[70]; > int scnt = 0; > ar++; > int id = ar; > while(scnt <= ar) > { > if(stack[scnt] == 0) > { > stack[scnt] = wsocket; > id = scnt; > fgotused = 1; > scnt = 0; > break; > } > scnt++; > } > if(fgotused == 0) > stack[id] = wsocket; > send(stack[id], "Server message: You are now successfuly connected.", > 70, > 0 ); > while(1) > { > scnt = 0; > if(recv(wsocket, recvbuf, 70, 0 ) == SOCKET_ERROR) > { > if(WSAGetLastError() == WSAECONNRESET) > { > i--; > stack[id] = 0; > cout << "Client Disconnected." << endl; > cout << "Clients connected: " << i << endl; > closesocket(wsocket); > return; > } > } > if(recvbuf) > { > cout << recvbuf << endl; > while(scnt <= ar) > { > if(scnt != id) > send(stack[scnt], recvbuf, 70, 0); > scnt++; > } > recvbuf = null; > } > } > } > void main() > { > WSADATA wsaData; > int iResult = WSAStartup(MAKEWORD(2,2),&wsaData); > if (iResult != NO_ERROR) > printf("Error at WSAStartup()\n"); > SOCKET m_socket; > m_socket = socket (AF_INET, SOCK_STREAM, 0); > if (m_socket == INVALID_SOCKET) > { > printf("Error at socket(): %ld\n", WSAGetLastError()); > WSACleanup(); > return; > } > sockaddr_in service; > service.sin_family = AF_INET; > service.sin_addr.s_addr = inet_addr("127.0.0.1"); > service.sin_port = htons(27015); > if (bind(m_socket,(SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR) > { > printf("bind() failed.\n"); > closesocket(m_socket); > return; > } > if (listen(m_socket, 700) == SOCKET_ERROR) > printf( "Error listening on socket.\n"); > SOCKET AcceptSocket; > printf("Waiting for a client to connect...\n"); > while (AcceptSocket = accept(m_socket, NULL, NULL)) > { > i++; > cout << "Client Connected." << endl; > cout << "Clients connected: " << i << endl; > _beginthread(clientserve, 0, (void*)&AcceptSocket); > } > } > ""vixle"" <mentard@xxxxxxxxx> wrote in message > news:54.17.23767.FBF06674@xxxxxxxxxxxxxxx > > <?php > > > > /* Get the port for the WWW service. */ > > //$service_port = getservbyname('www', 'tcp'); > > > > /* Get the IP address for the target host. */ > > //$address = gethostbyname('www.example.com'); > > > > /* Create a TCP/IP socket. */ > > $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); > > //echo "Attempting to connect to '$address' on port '$service_port'..."; > > $result = socket_connect($socket, "127.0.0.1", "27015"); > > > > socket_RECV($socket, $read, 300, null); > > echo $read; > > socket_close($socket); > > ?> > > > > i have a daemon running on that port that sends a message when it's got > a > > client connected > > but the script above doesn't output anything it just loads my cpu up to > > 100 percent and thats it then it basically stops working. While i need > it > > to display the messages sent by server(daemon) to the user running the > > script has anyone got any idea why it rejects to work? (yeah the daemon > is > > written in c++ if that matters) > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >