2013-05-06 30 views
1

我正在嘗試開發一個用於編程任務的PHP代碼判斷軟件。 我會嘗試在Java服務器上編譯需要套接字編程的代碼。我在PHP中使用套接字編程的知識。 我搜索了一下,發現一個代碼做了一些類似的工作。但我仍然無法得到東西的東西..怎麼實際上工作?該手冊是太技術得到很好的理解fsockopen()它是如何工作的?

這裏是一塊代碼,我已經書面意見按我的理解:

$socket = fsockopen($compilerhost, $compilerport); // creates connection it returns the file pointer 

if($socket) { // if it returns a file pointer 
fwrite($socket, $_POST['filename']."\n"); //write the filename in the file pointer returned by socket and chagne line 

$query = "SELECT time, input, output FROM problems WHERE sl='".$_POST['id']."'"; // select input,output,for the problem 

$result = mysql_query($query); 

$fields = mysql_fetch_array($result); 

fwrite($socket, $fields['time']."\n"); // write the time in the file pointer returned 

我不明白怎樣的fsockopen作品如何fwrite的使用這裏?

注意:雖然經過代碼我找不到$ compilerhost,$ compilerport變量。

糾正我提前赦免doubts.Thanks的英語不好

+1

您需要將'$ compilerhost'和'$ compilerport'設置爲適合您應用程序的任何內容。它們是要連接的服務器的名稱和端口號。 – Barmar 2013-05-06 20:03:13

+0

not my code googled it。我沒有發現任何這些變量在代碼中的任何地方啓動 – shiven 2013-05-06 20:05:00

+0

你在哪裏看到它? – Barmar 2013-05-06 20:05:21

回答

5

fsockopen()[PHP.net]允許您通過爲您提供一個句柄就可以讀取和寫入流與服務器通信。

這種「手柄」存儲在$socket變量,它只是爲fwrite[PHP.net]功能和兄弟姐妹,使得它知道要寫入的流等

標識符當你fwrite()的東西,它被髮送到服務器。

+0

fgets($ socket)將使我能夠從流中讀取? – shiven 2013-05-06 20:11:21

+0

@shiven是的,它的確如此。 – phant0m 2013-05-06 20:13:23

相關問題