Translation

(itstool) path: imageobject/imagedata This is a reference to an external file such as an image or video. When the file changes, the md5 hash will change to let you know you need to update your localized copy. The msgstr is not used at all. Set it to whatever you like once you have updated your copy of the file.
_
external ref='sockets/sainmsb' md5='__failed__'
47/470
Context English Persian State
0 1 2 3
+--------+--------+-----------------+
0 | 0 | 2 | 13 |
+-----------------+-----------------+
4 | 192.43.244.18 |
+-----------------------------------+
8 | 0 |
+-----------------------------------+
12 | 0 |
+-----------------------------------+
0 1 2 3
+--------+--------+-----------------+
0 | 0 | 2 | 13 |
+-----------------+-----------------+
4 | 192.43.244.18 |
+-----------------------------------+
8 | 0 |
+-----------------------------------+
12 | 0 |
+-----------------------------------+
<imageobject> <imagedata fileref="sockets/sainfill"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>Specific example of sockaddr_in</phrase> </textobject> <imageobject> <imagedata fileref="sockets/sainfill"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>مثال ویژهٔ sockaddr_in</phrase> </textobject>
By the way the <varname>sin_addr</varname> field is declared as being of the <varname>struct in_addr</varname> type, which is defined in <filename>netinet/in.h</filename>: ضمناً بخش <varname>sin_addr</varname> به‌عنوان عضوی از حالت <varname>struct in_addr</varname> اعلان می‌شود، که خود در <filename>netinet/in.h</filename> تعریف شده است:
/*
* Internet address (a structure for historical reasons)
*/
struct in_addr {
in_addr_t s_addr;
};
/*
* Internet address (a structure for historical reasons)
*/
struct in_addr {
in_addr_t s_addr;
};
In addition, <varname>in_addr_t</varname> is a 32-bit integer. افزون بر این، <varname>in_addr_t</varname> یک عدد صحیح ۳۲-بیتی است.
The <systemitem class="ipaddress">192.43.244.18</systemitem> is just a convenient notation of expressing a 32-bit integer by listing all of its 8-bit bytes, starting with the <emphasis>most significant</emphasis> one. <systemitem class="ipaddress">192.43.244.18</systemitem> تنها یک نماد مناسب جهت نشان دادن عدد صحیح‌ ۳۲ بیتی است، که با فهرست کردن تمام بایت‌های ۸ بیتی خود به این مهم می‌رسد، و با <emphasis>مهم‌ترین</emphasis> آن آغاز می‌شود.
So far, we have viewed <varname>sockaddr</varname> as an abstraction. Our computer does not store <varname>short</varname> integers as a single 16-bit entity, but as a sequence of 2 bytes. Similarly, it stores 32-bit integers as a sequence of 4 bytes. تاکنون، <varname>sockaddr</varname> را به‌مثابه یک امر انتزاعی در نظر گرفته‌ایم. رایانهٔ ما اعداد صحیح <varname>کوتاه</varname> را به‌صورت یک دادهٔ ۱۶ بیتی ذخیره نمی‌کند، بلکه آنها را به‌شکل توالی‌ای از ۲ بایت ذخیره می‌کند. به‌همین شکل، اعداد صحیح ۳۲ بیتی را به‌صورت توالی‌ای از ۴ بایت ذخیره می‌کند.
Suppose we coded something like this: فرض کنید چیزی شبیه به این کد زدیم:
sa.sin_family = AF_INET;
sa.sin_port = 13;
sa.sin_addr.s_addr = (((((192 &lt;&lt; 8) | 43) &lt;&lt; 8) | 244) &lt;&lt; 8) | 18;
sa.sin_family = AF_INET;
sa.sin_port = 13;
sa.sin_addr.s_addr = (((((192 &lt;&lt; 8) | 43) &lt;&lt; 8) | 244) &lt;&lt; 8) | 18;
What would the result look like? نتیجه چطور خواهد بود؟
Well, that depends, of course. On a <trademark class="registered">Pentium</trademark>, or other x86, based computer, it would look like this: البته که بستگی دارد. بر روی یک <trademark class="registered">Pentium</trademark> یا هر رایانهٔ x86 دیگری، چنین خواهد بود:
_ external ref='sockets/sainlsb' md5='__failed__' external ref='sockets/sainlsb' md5='__failed__'
0 1 2 3
+--------+--------+--------+--------+
0 | 0 | 2 | 13 | 0 |
+--------+--------+--------+--------+
4 | 18 | 244 | 43 | 192 |
+-----------------------------------+
8 | 0 |
+-----------------------------------+
12 | 0 |
+-----------------------------------+
0 1 2 3
+--------+--------+--------+--------+
0 | 0 | 2 | 13 | 0 |
+--------+--------+--------+--------+
4 | 18 | 244 | 43 | 192 |
+-----------------------------------+
8 | 0 |
+-----------------------------------+
12 | 0 |
+-----------------------------------+
<imageobject> <imagedata fileref="sockets/sainlsb"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>sockaddr_in on an Intel system</phrase> </textobject> <imageobject> <imagedata fileref="sockets/sainlsb"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>sockaddr_in بر روی سامانهٔ Intel</phrase> </textobject>
On a different system, it might look like this: بر روی یک سامانهٔ دیگر، ممکن است چنین باشد:
_ external ref='sockets/sainmsb' md5='__failed__' external ref='sockets/sainmsb' md5='__failed__'
0 1 2 3
+--------+--------+--------+--------+
0 | 0 | 2 | 0 | 13 |
+--------+--------+--------+--------+
4 | 192 | 43 | 244 | 18 |
+-----------------------------------+
8 | 0 |
+-----------------------------------+
12 | 0 |
+-----------------------------------+
0 1 2 3
+--------+--------+--------+--------+
0 | 0 | 2 | 0 | 13 |
+--------+--------+--------+--------+
4 | 192 | 43 | 244 | 18 |
+-----------------------------------+
8 | 0 |
+-----------------------------------+
12 | 0 |
+-----------------------------------+
<imageobject> <imagedata fileref="sockets/sainmsb"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>sockaddr_in on an MSB system</phrase> </textobject> <imageobject> <imagedata fileref="sockets/sainmsb"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>sockaddr_in بر روی یک سامانهٔ MSB</phrase> </textobject>
And on a PDP it might look different yet. But the above two are the most common ways in use today. به همین ترتیب بر روی یک PDP هم ممکن است متفاوت باشد. اما امروزه دو حالت مذکور در بالا رایج‌ترین حالات به شمار می‌آیند.
Ordinarily, wanting to write portable code, programmers pretend that these differences do not exist. And they get away with it (except when they code in assembly language). Alas, you cannot get away with it that easily when coding for sockets. به‌طور معمول، برای نوشتن کد انتقال‌پذیر، برنامه‌نویسان وانمود می‌کنند این تفاوت‌ها وجود ندارند. و با آنها کنار می‌آیند (به‌غیر از زمانی‌که در زبان اسمبلی کد می‌زنند). متأسفانه، هنگام کد زدن برای سوکت‌ها نمی‌توانید از این تفاوت‌ها چشم‌پوشی کنید.
Why? چرا؟
Because when communicating with another computer, you usually do not know whether it stores data <emphasis>most significant byte</emphasis> (<acronym>MSB</acronym>) or <emphasis>least significant byte</emphasis> (<acronym>LSB</acronym>) first. زیرا هنگام ارتباط با سایر رایانه‌ها، معمولاً‌ نمی‌دانید اگر ابتدا دادهٔ <emphasis>مهم‌ترین بایت</emphasis> (<acronym>MSB</acronym>) یا <emphasis>کم اهمیت‌ترین بایت</emphasis> (<acronym>LSB</acronym>) را ذخیره می‌کند.
You might be wondering, <emphasis><quote>So, will sockets not handle it for me?</quote></emphasis> ممکن است بپرسید، <emphasis><quote>با این حساب، سوکت‌ها این رو برای من مدیریت نخواهند کرد؟</quote></emphasis>
It will not. نخواهد کرد.
While that answer may surprise you at first, remember that the general sockets interface only understands the <varname>sa_len</varname> and <varname>sa_family</varname> fields of the <varname>sockaddr</varname> structure. You do not have to worry about the byte order there (of course, on FreeBSD <varname>sa_family</varname> is only 1 byte anyway, but many other <trademark class="registered">UNIX</trademark> systems do not have <varname>sa_len</varname> and use 2 bytes for <varname>sa_family</varname>, and expect the data in whatever order is native to the computer). گرچه آن جواب ممکن است ابتدا شما را متعجب کند، به‌یاد داشه باشید که رابط سوکت‌های عمومی تنها رشته‌های <varname>sa_len</varname> و <varname>sa_family</varname> از ساختمان <varname>sockaddr</varname> را می‌شناسد. نیازی به نگرانی دربارهٔ‌ ترتیب بایت نیست (البته، در FreeBSD رشتهٔ <varname>sa_family</varname> تنها یک ۱ بایت است، اما بسیاری از سامانه‌های <trademark class="registered">UNIX</trademark> فاقد <varname>sa_len</varname> هستند و از ۲ بایت برای <varname>sa_family</varname> استفاده می‌کنند، و انتظار دارند که داده در هر ترتیبی که باشد آشنا با رایانه است).
But the rest of the data is just <varname>sa_data[14]</varname> as far as sockets goes. Depending on the <emphasis>address family</emphasis>, sockets just forwards that data to its destination. اما باقی داده تا آنجا که سوکت‌ها بتوانند فقط <varname>sa_data[14]</varname> است. بسته به <emphasis>خانوادهٔ نشانی</emphasis>، سوکت‌ها آن داده را به مقصدش ارسال می‌کند.
Indeed, when we enter a port number, it is because we want the other computer to know what service we are asking for. And, when we are the server, we read the port number so we know what service the other computer is expecting from us. Either way, sockets only has to forward the port number as data. It does not interpret it in any way. در واقع، زمانی‌که شمارهٔ یک درگاه را وارد می‌کنیم، به این دلیل است که می‌خواهیم رایانهٔ دیگر بداند ما کدام سرویس را می‌خواهیم. و، زمانی‌که کارساز باشیم، شمارهٔ درگاه را می‌خوانیم و می‌دانیم رایانهٔ دیگر انتظار کدام سرویس را از ما دارد. در هر صورت، سوکت‌ تنها کافیست شماره درگاه را به‌عنوان داده ارسال کند. به‌هر حال آن را تفسیر نخواهد کرد.
Similarly, we enter the <acronym>IP</acronym> address to tell everyone on the way where to send our data to. Sockets, again, only forwards it as data. به همین ترتیب، نشانی <acronym>IP</acronym> را وارد می‌کنیم تا به همهٔ کسانی‌که در مسیر هستند مکان مورد نظر برای ارسال داده‌هایمان را بگوییم. سوکت‌ها، دوباره، آن را تنها به‌صورت داده ارسال می‌کنند.
That is why, we (the <emphasis>programmers</emphasis>, not the <emphasis>sockets</emphasis>) have to distinguish between the byte order used by our computer and a conventional byte order to send the data in to the other computer. به‌همین خاطر، ما (<emphasis>برنامه‌نویسان</emphasis>، نه <emphasis>سوکت‌ها</emphasis>) بین ترتیب بایتی که توسط رایانه‌هایمان استفاده می‌شود و ترتیب قراردادی بایتی که برای ارسال داده‌ به سایر رایانه‌ها استفاده می‌شود تمایز قائل شده‌ایم.
We will call the byte order our computer uses the <emphasis>host byte order</emphasis>, or just the <emphasis>host order</emphasis>. ما ترتیب بایتی که رایانهٔ ما به‌کار می‌برد را <emphasis>ترتیب بایت میزبان</emphasis>، یا فقط <emphasis>ترتیب میزبان</emphasis> می‌نامیم.
There is a convention of sending the multi-byte data over <acronym>IP</acronym> <emphasis><acronym>MSB</acronym> first</emphasis>. This, we will refer to as the <emphasis>network byte order</emphasis>, or simply the <emphasis>network order</emphasis>. قراردادی برای ارسال دادهٔ چندبایتی به‌وسیلهٔ <acronym>IP</acronym><emphasis><acronym>MSB</acronym> first</emphasis> وجود دارد. این قرارداد را، <emphasis>ترتیب بایت شبکه</emphasis>، یا به عبارت ساده <emphasis>ترتیب شبکه</emphasis> می‌نامیم.

Loading…

external ref='sockets/sainmsb' md5='__failed__'
external ref='sockets/sainmsb' md5='__failed__'
3 months ago
Browse all component changes

Things to check

Unchanged translation

Source and translation are identical

Reset

Glossary

English Persian
No related strings found in the glossary.

Source information

Context
_
Source string comment
(itstool) path: imageobject/imagedata This is a reference to an external file such as an image or video. When the file changes, the md5 hash will change to let you know you need to update your localized copy. The msgstr is not used at all. Set it to whatever you like once you have updated your copy of the file.
Source string location
book.translate.xml:5544 book.translate.xml:5666
String age
4 months ago
Source string age
a year ago
Translation file
books/fa/developers-handbook.po, string 918