PHP client socket connection with C# Socket Server -


i trying connect c# server website using php.

i keep connection alive through pages.

c# server: port 100

using system; using system.collections.generic; using system.net; using system.net.sockets; using system.text;  namespace multi_server {     class program     {         private static socket _serversocket;         private static readonly list<socket> _clientsockets = new list<socket>();         private const int _buffer_size = 2048;         private const int _port = 100;         private static readonly byte[] _buffer = new byte[_buffer_size];          static void main()         {             console.title = "server";             setupserver();             console.readline(); // when press enter close             closeallsockets();         }          private static void setupserver()         {             console.writeline("setting server...");             _serversocket = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);             _serversocket.bind(new ipendpoint(ipaddress.any, _port));             _serversocket.listen(5);             _serversocket.beginaccept(acceptcallback, null);             console.writeline("server setup complete");         }          /// <summary>         /// close connected client (we not need shutdown server socket connections         /// closed clients)         /// </summary>         private static void closeallsockets()         {             foreach (socket socket in _clientsockets)             {                 socket.shutdown(socketshutdown.both);                 socket.close();             }              _serversocket.close();         }          private static void acceptcallback(iasyncresult ar)         {             socket socket;              try             {                 socket = _serversocket.endaccept(ar);             }             catch (objectdisposedexception) // cannot seem avoid (on exit when closing sockets)             {                 return;             }             _clientsockets.add(socket);            socket.beginreceive(_buffer, 0, _buffer_size, socketflags.none, receivecallback, socket);            console.writeline("client connected, waiting request...");            _serversocket.beginaccept(acceptcallback, null);         }          private static void receivecallback(iasyncresult ar)         {             socket current = (socket)ar.asyncstate;             int received;              try             {                 received = current.endreceive(ar);             }             catch (socketexception)             {                 console.writeline("client forcefully disconnected");                 current.close(); // dont shutdown because socket may disposed , disconnected anyway                 _clientsockets.remove(current);                 return;             }              byte[] recbuf = new byte[received];             array.copy(_buffer, recbuf, received);             string text = encoding.ascii.getstring(recbuf);             console.writeline("received text: " + text);              if (text.tolower() == "get time") // client requested time             {                 console.writeline("text time request");                 byte[] data = encoding.ascii.getbytes(datetime.now.tolongtimestring());                 current.send(data);                 console.writeline("time sent client");             }             else if (text.tolower() == "exit") // client wants exit gracefully             {                 // shutdown before closing                 current.shutdown(socketshutdown.both);                 current.close();                 _clientsockets.remove(current);                 console.writeline("client disconnected");                 return;             }             else             {                 console.writeline("text invalid request");                 byte[] data = encoding.ascii.getbytes("invalid request");                 current.send(data);                 console.writeline("warning sent");             }              current.beginreceive(_buffer, 0, _buffer_size, socketflags.none, receivecallback, current);         }     } } 

i using http://php.net/manual/en/book.sockets.php

please not suggest alternatives (this fallback option non compatible html5 browsers)

php:

<?php  $service_port = 100;   $address = '10.10.10.12';    $socket = socket_create(af_inet, sock_stream, sol_tcp);   socket_set_nonblock($socket);  socket_connect($socket, $address, $service_port);  ?> 

my php code causing error on server when connected. https://www.anony.ws/i/2015/06/02/capture1aa49.png

i having same issue when trying connect via python..

#!/python34/python import socket host = '10.10.10.12'    # remote host port = 100             # same port used server s = socket.socket(socket.af_inet, socket.sock_stream) s.connect((host, port)) s.sendall('hello, world') data = s.recv(1024) s.close() print('received', repr(data)) 

i able track down error... still not sure causing it.. message : tcpip socket error has occurred (10053): established connection aborted software in host machine. reason : server closed client connection. action : contact network administrator or server administrator.

the error happening won begin receive server, causing server close connection. believe sending information server incorrectly, if take out receive server connection not terminated.

keeping connection open php not practice , cause page not finish loading. php should closed time web browser receives output. consider using javascript not php. reason connection closes handshake.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -