مثال برای برنامه نویسی سوکت (socket)

خب قرار شده بود که مثال بزنم در رابطه با سیستم های چت ولی پشیمون شدم … چون فعلا به نظرم زود هستش بهتره جلوتر بریم با مسائل امنیتی آشنایی کافی پیدا کنیم و مثال ها پیچیده تر بزنیم …

واسه همین اول اومدم یک مثال ساده و آماده برای server و client بزنم … البته چون فقط هدف این مثال درک بهتر کار هستش بهتون پیشنهاد میکنم فقط برای یادگیری ازش استفاده کنید چون هیچجوره امنیت نداره ! {در رابطه با امنیت در آموزش های بعدی مفصل صحبت میکنم}

شما اول باید فایل های server.php & client.php & test.txt را آماده کنید . ببینید اول کامت های فایل رو بخونید که نکته گفتم توش مسئله بعدی بر میگرده به درک شما از این کار … شاید بعد از اجرا و گرفتن نتیجه به خودتون بگید خب چه کاریه اینو که با چند خط دستور ساده میشد انجام داد …
خب ببینید اوایل اینطور هستش و این حرف رو میزنید و مثلا شما یک سایتی به نام dom1.com دارید و یک سایت دیگر به نام dom2.com خب حالا سایت dom1.com یک سایتی هستش که اطلاعات ثبت میکنه (بگیم مثل توییتر) حالا شما بخواین یه سیستم جدا برای خودتون بنویسید که از dom2.com به dom1 بتونید اطلاعات ارسال کنید . بدون اینکه آثاری از dom1.com وجود داشته باشه خب به راحتی میتونید از این روش استفاده کنید یا Cback که همگی آشنایی لازم رو دارید :دی که با nc میومدیم IP خودمون رو با یک پورت تعریف شده آماده گوش کردن میکردیم بعدش توی مکان دیگه با فایل pl که داشتیم میومدیم به اون آیپی وصل میشدیم …(حالا اون دستورات از قبل مشخص داشت که تعریف شده براش)

و … که بخوام بگم خیلی طول میکشه …

server.php

کد PHP:

<?php
ignore_user_abort(true);
set_time_limit(0);
// yekbar bayad file server.php run beshe :-)
// In faghat janbeye amoozeshi dare besoorate kham hastesh
// agar ghasde estefade darid ta akhare amoozesh ha sabr konid
// chon in hai ke alan daram migam hich amniati nadare :-)
// sabr dashte bashid ta be masaele amniati ham beresim
// ye bahse mofasal rajebesh baraton mikonam
//
// C.08

$host = «127.0.0.1»;
$port = 9898;

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die(«Could not create socket\n»);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, $host, $port);
socket_listen($socket);

while(true){
$spawn  = socket_accept($socket);
$data   = socket_read($spawn, 10240) or die(«Could not read input\n»);
$load = file_get_contents(‹test.txt›);

// inja mikhastam ba func file_ kar konam chon badan bahash kar ziad darim

file_put_contents(‹./test.txt›,$load.$data);

// vase hamin khater az write va … estefade nakardam ;)

// shoma inja mitonid dastoorati ke mikhayn ro

// ejra konid masalan mitoni begid agar write ma
// barabare [1] bood felan karo anjam bede ya masalan 1^2^send^hi bood ba tajzie o tahlil
// dastoorate khodemono ejra konim :-)

}

socket_close($socket);

?>

client.php :

کد PHP:
<?php
set_time_limit(0);

// harchi ke lazemeye comment kardan bood toye server.php goftam :-)

$host = «127.0.0.1»;
$port = 9898;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die(«Could not create socket\n»);
$connect = socket_connect($socket, $host, $port);

$sendmsg = «Hi Ashiyane»; // hala mitonid be raveshe khodeton data ro daryaft konid !! harjoor… :-)
socket_write($socket, $sendmsg,strlen($sendmsg));

socket_close($socket);

// inja ham hala hadafe khodetono bade anjame kari ke kardid mitonid print ya … konid.
// Exmp:
print file_get_contents(‹test.txt›);

?>

نقل قول:
+ test.txt

By CarBoN.08

2 Responses to مثال برای برنامه نویسی سوکت (socket)

  1. nazila می‌گه:

    سلام
    از مطالب خوبتون ممنون
    من میخوام یه مسنجر تحت وب با php بنویسم اما تازه کارم. ممنون میشم اگه بازهم مطالبی در این زمینه بذارید. یا بگید که چطور میتونم مطالب بیشتری در این زمینه بخونم.
    تشکر

  2. mardak می‌گه:

    سلام
    اگر میخواین مسنجر اختصاصی بنویسین همین سوکت خوبه ولی منظورتون یاهو یا … هست میتونید از API هایی که در دسترس کاربرانشان قرار میدهند استفاده کنید

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: