使用Socket與C進行溝通

使用PHP的Socket編寫client,與C的Server進行溝通和操作。

//define variable
$user_acc="username";
$user_pwd="password";
$address='127.0.0.1';
$service_port=5000;
//create
$socket=socket_create(AF_INET, SOCK_STREAM, 0);
if ($socket<0) {
exit("failed:".socket_strerror($socket));
}
//connect
$result=socket_connect($socket,$address,$service_port);
if ($result < 0) {
exit("failed:".socket_strerror($result));
}else{
echo "Connection OK.\n";
}
//username and password checking
$msg_content=$user_acc."\0". $user_pwd ."\0";
//paramters
$in=pack("C",1000).pack("C",2000).pack("C",strlen($msg_content)).$msg_content;
$out = '';
socket_send($socket,$in,strlen($in),0);
$out_len=socket_recv($socket,$out,$ret_msg_len,0);
$ret_C=substr($out,0,1); //get ret_code
$ret_code_array=unpack("C", $ret_C); //將$ret_C轉成unsigned char,unpack會return array
$ret_code=array_pop($ret_code_array); //從array中pop出ret_code值
if($ret_code==0)
{
//ret_code ==0 , ID/Passwd check OK!
echo "Username and password checking complete!\n";
//do something...
}else{
echo "Wrong login information.\n";
}
socket_close ($socket);

沒有留言: