Solved

How to create and Use Sockets in PHP?

Posted on 2010-11-28
11
488 Views
Last Modified: 2013-11-27
Please help me to create single Socket and Socket Arrays in PHP . How to operate DataArrival Socket Connect, Socket Error, Socket Close events in PHP in detail.

-Thanks
0
Comment
Question by:appinities
  • 6
  • 3
11 Comments
 
LVL 6

Accepted Solution

by:
loopfinity earned 250 total points
ID: 34225241
0
 

Author Comment

by:appinities
ID: 34229438
Thanks "loopfinity" . Your reply is appreciable, But still ..lemme show you with an example what I want..

In visual basic 6.0 I am using a socking, its coding is like:

Im sending packets like:
Socket1.SendData (0), HextoAscii("02 03 8E 00 1A 00 00 00 07 00 01 00 00 00 01 01")

Open in new window


Here (0) is the Array of the socket..


Same thing for Data Arrival method in vb6.0 is:

Private Sub Sockm_DataArrival(ByVal Index As Variant, ByVal bytesTotal As Long)
On Error Resume Next
Dim TempString as String

Socket1.GetData Index, TempString, vbString
If  TempString = "2 1 9C 0 Then
   msgbox "Login Successfully"
Else
  msgbox "Login Failed"
Endif

Open in new window



Same thing I wann do with the PHP sockets.. so please show me "How can I use above codings in PHP sockets"?

-Thanks alot in Advance..
0
 

Author Comment

by:appinities
ID: 34229447
Sorry for double posting, Ijn the above code
Private Sub Sockm_DataArrival

Open in new window


is Actually

Private Sub Socket1_DataArrival

Open in new window

0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 42

Expert Comment

by:Rob Jurd, EE MVE
ID: 34264024
Have you gone through the user manual?

http://php.net/manual/en/book.sockets.php
0
 

Author Comment

by:appinities
ID: 34264391
Thanks Tagit, that link should help me alot, but I want you to convert my above codes into PHP. Thanks
0
 

Author Comment

by:appinities
ID: 34316473
Ok letme reduce the complexity of my question...

What should be the codings for : -

Suppose I wanna create a socket (TCP sockets not HTTP) with 5 arrays and wanna Connect these arrays with "gateway.abcdxyz.com" with Port "9009"

Now, After successfully connectivity , I wanna send a string to connected server.. string is "hello are you there?"

Now, If the connected server reply to my request, then I wanna display those responded message which are coming from the Server..
Example:
If server responding "Yes I am here"

then, how can I get responded message and can display it ?

-Thanks :(
0
 

Author Comment

by:appinities
ID: 34359413
Lolz..Still no reply... Where are experts ???? :@
0
 
LVL 42

Assisted Solution

by:Rob Jurd, EE MVE
Rob Jurd, EE MVE earned 250 total points
ID: 34365926
Here is a basic client/server using the attached Socket.php class for the server

Running on your server:
<?php
require('Socket.php');

$my_socket = new Socket(100, 27, true);

while(!$my_socket->waitClient()) {
	sleep(100);
}

// now connected

$sent_text = $my_socket->read();

if (strlen($sent_text) > 0) {
	$my_socket->write("Yes I am here\n");
}

?>

Open in new window


connect on the client
<?php
ob_start();
$socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
while (!socket_connect($socket, "localhost", 27)) {
	ob_flush();
	sleep(1);
}
$message="hello are you there?\n";
$sent = socket_write($socket, $message);
if ($sent === false) {
	// Error occurred, break the while loop
	echo "error";
	break;
}
else {
	// Data sent ok
	echo "sent: $message<br/>";
	echo "received: " . read($socket);
}
ob_end_flush();

function read($_socket) {
	$message = '';
	do {
		$buff     = socket_read($_socket,1,PHP_BINARY_READ);
		$message .= $buff;
	} while( $buff != "\n" );
	return $message;
}
?>

Open in new window

Socket.php
0
 

Author Closing Comment

by:appinities
ID: 34367831
Thanks :)
0
 
LVL 42

Expert Comment

by:Rob Jurd, EE MVE
ID: 34373085
no problem but why the B grade? works doesn't it?
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article covers the basics of the Sass, which is a CSS extension language. You will learn about variables, mixins, and nesting.
Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

822 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question