سوکت های برکلی ( به انگلیسی: Berkeley sockets ) یا سوکت های بی اس دی ( به انگلیسی: BSD sockets ) کتاب خانه ای شامل رابط های برنامه نویسی نرم افزار برای کار با سوکت های اینترنتی و سوکت های دامنه یونیکس است، که از این سوکت ها برای ارتباطات بین پردازشی استفاده می شوند. سوکت های برکلی به عنوان رابط برنامه نویسی نرم افزار از سیستم عامل ۴/۲بی اس دی سرچشمه گرفتند که این سیستم عامل در سال ۱۹۸۳ منتشر شد. امروزه تمام سیستم عامل های مدرن یک پیاده سازی از سوکت های برکلی را به همراه دارند چون این سوکت ها روش استاندارد برای دسترسی به اینترنت هستند. این رابط ها در اصل به زبان سی نوشته شدند اما بیشتر زبان های برنامه نویسی رابط های مشابهی را در دسترس کاربر قرار می دهند و می توان از آن ها در اکثر زبان های برنامه نویسی مدرن استفاده کرد.
رابط های سوکت برکلی در چند فایل سرآیند تعریف شده اند. البته در پیاده سازی های مختلف، این فایل ها کمی در نام و محتوا با هم متفاوت هستند. اما به طور کلی این فایل های سرآیند به شرح زیر هستند:
توابع و ساختمان داده های اصلی مرتبط با سوکت ها در این فایل تعریف شده است.
دربرگیرنده AF_INET و AF_INET6 و پروتکل های متناظر با آن ها PF_INET و PF_INET6 است. این پروتکل ها به طور گسترده در اینترنت استفاده می شوند. این فایل هم دربرگیرنده آدرس های IP و هم شماره پورت های TCP و UDP است.
این فایل حاوی خانواده آدرس های PF_UNIX/PF_LOCAL است. این دسته از آدرس ها برای برقرای ارتباط میان برنامه های موجود بر روی یک سیستم استفاده می شوند و از آن ها در شبکه استفاده نمی شوند.
حاوی توابعی برای دستکاری آدرس های IP عددی است.
حاوی توابعی برای ترجمه کردن اسامی پروتکل ها و میزبان ها به معادل عددی آنهاست.
ساختارهای مختلفی برای کار با سوکت ها وجود دارد که یکی از ساده ترین آن ها ساختار sockaddr_n است که در فایل netinet/in. h تعریف شده است:
struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero; }; در ساختار sockaddr_in، فیلدهای sin_port و sin_addr باید به صورت Network byte order باشند. چرا که این اطلاعات قرار است بر روی شبکه ارسال شوند و هر ماشینی هم روش مخصوص به خود را برای پردازش داده های موجود در این فیلدها را دارد و بنابراین این فیلدها باید به صورت استاندارد بر روی شبکه ارسال شوند تا از تداخل جلوگیری شود. به کمک توابع htons ( ) و htonl ( ) می توان تبدیل مورد نظر را انجام داد. همین طور دیگر فیلدها هم در صورتی که استفاده نمی شوند، باید با مقادیر ۰ پر شوند. این کار با استفاده از تابع memset ( ) قابل انجام است. این تابع در فایل سرآیند string. h تعریف شده است. به مثال زیر توجه کنید:
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفرابط های سوکت برکلی در چند فایل سرآیند تعریف شده اند. البته در پیاده سازی های مختلف، این فایل ها کمی در نام و محتوا با هم متفاوت هستند. اما به طور کلی این فایل های سرآیند به شرح زیر هستند:
توابع و ساختمان داده های اصلی مرتبط با سوکت ها در این فایل تعریف شده است.
دربرگیرنده AF_INET و AF_INET6 و پروتکل های متناظر با آن ها PF_INET و PF_INET6 است. این پروتکل ها به طور گسترده در اینترنت استفاده می شوند. این فایل هم دربرگیرنده آدرس های IP و هم شماره پورت های TCP و UDP است.
این فایل حاوی خانواده آدرس های PF_UNIX/PF_LOCAL است. این دسته از آدرس ها برای برقرای ارتباط میان برنامه های موجود بر روی یک سیستم استفاده می شوند و از آن ها در شبکه استفاده نمی شوند.
حاوی توابعی برای دستکاری آدرس های IP عددی است.
حاوی توابعی برای ترجمه کردن اسامی پروتکل ها و میزبان ها به معادل عددی آنهاست.
ساختارهای مختلفی برای کار با سوکت ها وجود دارد که یکی از ساده ترین آن ها ساختار sockaddr_n است که در فایل netinet/in. h تعریف شده است:
struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero; }; در ساختار sockaddr_in، فیلدهای sin_port و sin_addr باید به صورت Network byte order باشند. چرا که این اطلاعات قرار است بر روی شبکه ارسال شوند و هر ماشینی هم روش مخصوص به خود را برای پردازش داده های موجود در این فیلدها را دارد و بنابراین این فیلدها باید به صورت استاندارد بر روی شبکه ارسال شوند تا از تداخل جلوگیری شود. به کمک توابع htons ( ) و htonl ( ) می توان تبدیل مورد نظر را انجام داد. همین طور دیگر فیلدها هم در صورتی که استفاده نمی شوند، باید با مقادیر ۰ پر شوند. این کار با استفاده از تابع memset ( ) قابل انجام است. این تابع در فایل سرآیند string. h تعریف شده است. به مثال زیر توجه کنید:

wiki: سوکت های برکلی