Сокет и его методы

Типы розеток

Ниже перечислены различные типы розеток:

Розетки датаграммы

Это тип сетевой розетки, которая обеспечивает точку без подключения для отправки и получения пакетов данных. Каждый пакет, отправляемый из гнезда датаграммы, маршрутизируется и доставляется по отдельности. Он также может использоваться для отправки и получения широковещательных сообщений.

Сырьевые розетки

Это гнездо позволяет получить доступ к базовому поставщику транспортных услуг. Они могут предоставить пользователям доступ к основным протоколам связи, поддерживающим абстракции сокетов. Обычно они ориентированы на датаграммы, хотя их точные характеристики зависят от интерфейса, предоставляемого протоколом. Они не предназначены для общего пользования, но предназначены в основном для тех, кто заинтересован в разработке новых коммуникационных протоколов или для получения доступа к некоторым уже существующим загадочным средствам протоколов.

Последовательные розетки пакетов Гнезда

Это похоже на сокет потока, за исключением того, что границы записи сохраняются. Этот тип сокета позволяет пользователям управлять протоколом последовательностей пакетов (SPP) или заголовками протокола интернет-протокола датаграмм (IDP) в пакете или даже группе пакетов. Этот сокет также позволяет пользователю получать заголовки входящих пакетов.

Розетки для ручьев

Этот тип сокета полагается на TCP для передачи данных. Если доставка данных невозможна, отправитель получит сообщение о том, что соединение привело к ошибке. Записи данных не имеют границ. Этот разъем обеспечивает ориентированный на подключение, последовательный и уникальный поток данных без границ записи, с четко определенными механизмами для создания и/или разрушения соединений и обнаружения ошибок. Он передает надежные данные в порядке и без использования внеполосных возможностей.
Предполагается, что процессы взаимодействуют только между розетками одного типа, но нет никаких ограничений, препятствующих взаимодействию между этими розетками разных типов.

Активное гнездо

Это разъемное соединение с активными удаленными разъемами через открытое соединение для передачи данных. Если это соединение будет закрыто, активные розетки в каждой точке также будут разрушены. Используется клиентами, которые хотят инициировать запросы на подключение для подключения. Однако, это активное гнездо также может быть преобразовано в пассивное гнездо путем привязки имени к гнезду с помощью bind-macro и путем указания готовности принимать соединения с микрофоном listen-macro.

Пассивная розетка

Эта розетка не подключена, а ждет входящего соединения, которое вызовет новую активную розетку. Используется серверами для того, чтобы принимать запросы на соединение с микрофоном Connect-macro. Эта пассивная розетка не может использоваться для инициирования запросов на подключение.
Понятия активных и пассивных сокетов для потоковых сокетов не применимы к другим типам сокетов, таким как сокеты датаграммы.

Порты и розетки

Гнездо — это интерфейс для отправки и получения данных по определенному порту, в то время как порт представляет собой числовое значение, назначенное определенному процессу или приложению в устройстве. Даже при наличии тесной связи между гнездом и портом, гнездо на самом деле не является портом. Каждый порт может иметь одну пассивную розетку, ожидающую входящие соединения, и несколько активных розеток, каждая из которых соответствует открытому соединению в порту. В настоящее время розетка делает общение более простым и эффективным. Это позволяет установить связь между двумя разными процессами на одном и том же или разных машинах. Проще говоря, это способ общения с другим компьютером.

Термин «розетка» начал употребляться с 1971 года, когда он использовался при разработке ARPANET. Большинство розеток, реализуемых сегодня, основаны на розетках Беркерли, которые были разработаны в 1983 году. Однако розетки, используемые для подключения к Интернету, созданы по образцу моделей Winsock, которые были сделаны в 1991 году. Гнезда Беркерли также известны как гнезда BSD. В 1989 году Berkerley выпустила версии своей операционной системы и сетевой библиотеки, свободные от лицензионных ограничений. Другие ранние версии были написаны для TOPS-20, MVS, VM и IBM-DOS.

server.of(nsp)

  • (String|RegExp|Function)
  • Returns

Initializes and retrieves the given by its pathname identifier . If the namespace was already initialized it returns it immediately.

const adminNamespace = io.of('/admin');

A regex or a function can also be provided, in order to create namespace in a dynamic way:

const dynamicNsp = io.of(/^\/dynamic-\d+$/).on('connect', (socket) => {  const newNamespace = socket.nsp;   newNamespace.emit('hello');});const socket = io('/dynamic-101');dynamicNsp.emit('hello');dynamicNsp.use((socket, next) => {  });

With a function:

io.of((name, query, next) => {  next(null, checkToken(query.token));}).on('connect', (socket) => {  });

new Server(httpServer[, options])

  • (http.Server) the server to bind to.
  • (Object)

Works with and without :

const io = require('socket.io')();const Server = require('socket.io');const io = new Server();

Available options:

Option Default value Description
name of the path to capture
whether to serve the client files
the adapter to use. Defaults to an instance of the that ships with socket.io which is memory based. See socket.io-adapter
the allowed origins
the parser to use. Defaults to an instance of the that ships with socket.io. See socket.io-parser.

Available options for the underlying Engine.IO server:

Option Default value Description
how many ms without a pong packet to consider the connection closed
how many ms before sending a new ping packet
how many ms before an uncompleted transport upgrade is cancelled
how many bytes or characters a message can be, before closing the session (to avoid DoS).
A function that receives a given handshake or upgrade request as its first parameter, and can decide whether to continue or not. The second argument is a function that needs to be called with the decided information: , where is a boolean value where false means that the request is rejected, and err is an error code.
transports to allow connections to
whether to allow transport upgrades
parameters of the WebSocket permessage-deflate extension (see ws module api docs). Set to to disable.
parameters of the http compression for the polling transports (see api docs). Set to to disable.
name of the HTTP cookie that contains the client sid to send as part of handshake response headers. Set to to not send one.
path of the above option. If false, no path will be sent, which means browsers will only send the cookie on the engine.io attached path (). Set false to not save io cookie on all requests.
if HttpOnly io cookie cannot be accessed by client-side APIs, such as JavaScript. This option has no effect if or is set to .
what WebSocket server implementation to use. Specified module must conform to the interface (see ws module api docs). Default value is . An alternative c++ addon is also available by installing module.

Among those options:

  • The and parameters will impact the delay before a client knows the server is not available anymore. For example, if the underlying TCP connection is not closed properly due to a network issue, a client may have to wait up to ms before getting a event.

  • The order of the array is important. By default, a long-polling connection is established first, and then upgraded to WebSocket if possible. Using means there will be no fallback if a WebSocket connection cannot be opened.

const server = require('http').createServer();const io = require('socket.io')(server, {  path: '/test',  serveClient: false,  pingInterval: 10000,  pingTimeout: 5000,  cookie: false});server.listen(3000);

SOCK_STREAM vs SOCK_DGRAM¶

См.также

  • UDP
  • TCP
Потоковый (SOCK_STREAM) Дейтаграммный (SOCK_DGRAM)
Устанавливает соединение Нет
Гарантирует доставку данных Нет в случае UDP
Гарантирует порядок доставки пакетов Нет в случае UDP
Гарантирует целостность пакетов Тоже
Разбивает сообщение на пакеты Нет
Контролирует поток данных Нет

TCP гарантирует доставку пакетов, их очередность, автоматически разбивает
данные на пакеты и контролирует их передачу, в отличии от UDP.
Но при этом TCP работает медленнее за счет повторной передачи потерянных
пакетов и большему количеству выполняемых операций над пакетами. Поэтому
там где требуется гарантированная доставка (Веб-браузер, telnet, почтовый клиент) используется TCP, если же требуется передавать данные в реальном
времени (многопользовательские игры, видео, звук) используют UDP.

Какие есть сокеты у Intel

В маркировке этого бренда цифра указывает количество контактов. Например, у LGA 1151 из именно 1151. Удобно!

  • Socket 8. Слот на 387 контактов для посадки процессора Pentium Pro.
  • 370. Появился в 1999 году. Создавался под «Селероны» — урезанные версии «Пней».
  • 423. Создан в 2000 году под Pentium 4 — тоже своего рода легенда: «знак качества», которым грезил каждый компьютерный гик.
  • 478. Появился в 2002 году. Предназначен для установки «Пентюхов» и «Селеронов» на архитектурах ядер Northwood, Prescott и Willamette.
  • 604. Разъем, который с 2002 по 2006 годов был основным для серверных Xeon.
  • PAC418 и PAC611. Использовались для CPU Itanium, которые Интел разрабатывал совместно с Hewlett-Packard (после ребрендинга именуется HP).
  • J (LGA771). Для установки серверных и десктопных «Ксеонов» и Core 2.
  • T (LGA775). Выпущен в 2004 году для 4‑х «Пней», Dual-Core и Core 2 Duo.
  • LS (LGA1567). Разъем для серверных Xeon с количеством ядер от 4 до 10. Представлен в 2010 году. Уже в 2011 заменен на LGA2011.
  • B (LGA1366). Преемник LGA775. Для процессоров на архитектурах Gulftown и Bloomfield.
  • H (LGA1156). Более дешевая альтернатива предыдущему варианту. Поддерживался с 2009 по 2012 годы. Для десктопных и серверных ЦП с ядрами Clarkdale и Lynnfield.
  • H2 (LGA1155). Представлен в 2011 году. Для «камней» на архитектуре Sandy Bridge.
  • R (LGA2011). Представлен в 2011 году как замена LGA1366. Кроме Сенди Бридж, поддерживает ядра Broadwell и Haswell.
  • B2 (LGA1356). Появился в 2012 году как решение для двухпроцессорных серверов.
  • H3 (LGA1150). Выпущен в 2013 году. Для архитектур Broadwell и Haswell.
  • R3 (LGA2011‑3). Модификация LGA2011, созданная в 2014 году.
  • H4 (LGA 1151). Замена LGA1150, представленная в 2015 году. В 2017 появилась версия 1151v2, которая поддерживается по текущее время.
  • R4 (LGA2066). Замена LGA 2066, выпущенная в 2017 году.
  • H5 (LGA 1200) . Был выпущен во 2 квартале 2020 года, для архитектуры Comet Lake (в общем новьё!)

Итак, сегодня актуальные слоты у Интела — 2066 (для топовых сборок) и 1151v2 (для массовых пользователей) и новоиспеченный 1200. При сборке нового компа рекомендую ориентироваться именно на них. Полезно также будет ознакомиться: «С обзором материнской платы ASUS PRIME B460M‑A под сокет LGA 1200» и «Лучший процессор для сокета 1155».

Класс Socket

Класс Socket играет важную роль в сетевом программировании, обеспечивая функционирование как клиента, так и сервера. Главным образом, вызовы методов этого класса выполняют необходимые проверки, связанные с безопасностью, в том числе проверяют разрешения системы безопасности, после чего они переправляются к аналогам этих методов в Windows Sockets API.

Прежде чем обращаться к примеру использования класса Socket, рассмотрим некоторые важные свойства и методы этого класса:

Свойства и методы класса Socket
Свойство или метод Описание
AddressFamily Дает семейство адресов сокета — значение из перечисления Socket.AddressFamily.
Available Возвращает объем доступных для чтения данных.
Blocking Дает или устанавливает значение, показывающее, находится ли сокет в блокирующем режиме.
Connected Возвращает значение, информирующее, соединен ли сокет с удаленным хостом.
LocalEndPoint Дает локальную конечную точку.
ProtocolType Дает тип протокола сокета.
RemoteEndPoint Дает удаленную конечную точку сокета.
SocketType Дает тип сокета.
Accept() Создает новый сокет для обработки входящего запроса на соединение.
Bind() Связывает сокет с локальной конечной точкой для ожидания входящих запросов на соединение.
Close() Заставляет сокет закрыться.
Connect() Устанавливает соединение с удаленным хостом.
GetSocketOption() Возвращает значение SocketOption.
IOControl() Устанавливает для сокета низкоуровневые режимы работы. Этот метод обеспечивает низкоуровневый доступ к лежащему в основе классу Socket.
Listen() Помещает сокет в режим прослушивания (ожидания). Этот метод предназначен только для серверных приложений.
Receive() Получает данные от соединенного сокета.
Poll() Определяет статус сокета.
Select() Проверяет статус одного или нескольких сокетов.
Send() Отправляет данные соединенному сокету.
SetSocketOption() Устанавливает опцию сокета.
Shutdown() Запрещает операции отправки и получения данных на сокете.

Сокет что это — контактный разъем для установки процессора

Сокет что это — разъем для установки центрального процессора. Когда приходит время выполнить апгрейд вашего компьютера либо собрать ПК с нуля, то вы непременно столкнетесь с этим устройством. В процессе установки CPU у вас могут появиться некоторые вопросы, например: совместимость процессора с материнской платой. Дело в том, что не каждый ЦП может быть установлен в системную плату, прежде всего из-за несовместимости разъемов.

Поэтому прежде, чем покупать оборудование к компьютеру, нужно точно знать с каким сокетом процессор подойдет на вашу материнскую плату. Начинающие пользователи плохо знают, что представляет собой сокет и нечетко ориентируются в его назначении. В данной публикации мы расскажем об этом — сокет что это и какая его основная цель назначения в компьютере.

Наглядный пример сокета

Сокет что это в материнской плате?

Сокет в переводе с английского розетка или гнезда, а по-русски просто специальный разъем расположенный в системной плате для установки в него CPU.

Здесь показан сокет предназначенный для ЦП корпорации Intel.

Если подойти скрупулезнее к понятию сокет, то это означает — комплект элементов выполняющих коммуникационные функции относительно центрального процессора и системной платой.

Как правило, конструкция сокета куда монтируется CPU, выполнена в прямоугольной форме. По периметру этой площадки имеются дополнительные монтажные отверстия либо крепежный механизм, которые служат для установки и фиксации устройства охлаждения.

Почему производители используют технологию с применением сокета, а не лучше бы было элементарно запаять ЦП в системную плату? Во первых такой вариант значительно затруднит процесс замены самого процессора, в случае его выхода из строя либо модернизации компьютера. При использовании процессорного разъема, вы можете самостоятельно свободно и быстро произвести замену компонента.

Расположение сокета на системной плате компьютера

Применение разъема на материнской плате под процессор в основном используется в персональных компьютерах, в которых вы можете произвести апгрейд оборудования. Что касается ноутбуков, то в них поменять центральный процессор для неподготовленного пользователя будет проблематично. Трудность его замены заключается в процессе демонтажа, при котором предусматривается операция выпаивания CPU из материнской платы.

Сокет процессора что это?

Общее смысловое представление слова «сокет процессора» во многом совпадает с пониманием «сокет системной платы». По-большому счету это тип разъема ЦП, который сочетается с разъемом материнской платы. Поэтому, когда выбираете себе CPU обязательно посмотрите прилагаемую к нему инструкцию с технической информацией. Там будет указан номер сокета, вот по этому номеру вы сможете определить подойдет он на вашу материнскую плату или нет.

Разновидность сокетов

Теперь, когда вы знаете про сокет что это и для чего он нужен, рассмотрим разновидность имеющихся в продаже данных разъемов. Все виды существующих сокетов можно разделить на два вида — производства компании Все имеющиеся ныне INTEL и не менее знаменитой корпорации «AMD». CPU от компании «Интел» невозможно поставить в сокет AMD, также и наоборот.

Сокет под ЦП АМД содержит в себе места для контактных выводов, а в разъеме под процессор Intel изначально предусмотрены сами такие контактные ножки.

Вместе с тем разъемы имеют различия:

Сокет что это, что дает socket, на что он влияет и зачем нужен

Почему они все разные

Для начала — немного об устройстве процессора, для лучшего углубления в тему. Как вы уже знаете, ЦП создается на кристалле кремния с помощью специального оборудования. Фактически, это очень сложная микросхема с огромным количеством логических блоков.

Сколько таких блоков получится на дюйм, зависит от техпроцесса, то есть разрешающей способности печатного оборудования. Конструкция процессоров постоянно усложняется, но одновременно и становится совершеннее оборудование, на котором они создаются.

Уменьшение разрешающей способности позволяет на одинаковом по размерам куске кремния создавать больше логических блоков. Наблюдается интересная картина: регулярно растет тактовая частота, количество ядер и прочие параметры ЦП, но их размеры остаются почти одинаковыми — по площади приблизительно как спичечный коробок, только квадратный.

Усложнение конструкции требует и увеличения числа контактов, по которым передаются сигналы на материнскую плату. От расположения логических блоков на кристалле зависит и распиновка. По этой причине некоторые сокеты, которые совместимы физически, не всегда взаимозаменяемы.

Socket определяет не только количество контактов и их распиновку, но и прочие важные параметры: с каким чипсетом будет дружить «камень», какую оперативку поддерживать и на какой частоте, какой кулер можно использовать и т.д. А теперь рассмотрим разъемы, которые, на мой взгляд, заслуживают упоминания.

Сокеты Intel

Процессоры от этого производителя имеют высокую динамику обновлений, в отличие от известного AMD. Недавно были выпущена серия процессоров, имеющая несколько сокетов, которые между собой были несовместимыми.

Здесь есть положительная и отрицательная сторона ситуации. С одной стороны, это хорошо, так как увеличивается производительность CPU и практически под каждую модель создаётся свой специфический сокет. Но, с другой стороны, сделать апгрейд в таком случае очень сложно, так как новые процессоры имеют свои разъёмы, поэтому если их и менять, то делать это нужно вместе с материнской платой, что будет, не очень удобно, а главное, дорого.

Какие же модели можно рассматривать и чем они характеризуются?

  1. Socket LGA 2011. Модель прекрасно работает с различными процессорами на архитектуре Ivy Bridge от Intel (Core i3, i5, i7). Изначально сокет использовался в качестве маркетингового хода, чтобы встрясти положение на рынке, и повысить стоимость на процессоры для него. Это было в первое время, затем стоимость таких процессоров упала. Однако на материнках с этим сокетом это не отразилось и стоимость их так, и осталась высокой в отличие от вариантов, которые будут рассмотрены ниже.
  2. Socket LGA 1356, 1155, 1156. Эти модели применимы только для одной архитектуры Sandy Bridge 2, хоть и являются несовместимыми между собой. Наиболее эффективным оказалась модель 1155, которую использовали для большей части систем. Сокет 1366 был создан для мощнейших станций, который также отлично себя показал в работе.

  3. Socket LGA 775. В некоторых системах они всё ещё используются, однако, стоит отдать должное, они уже сильно устарели. Системы, в которых можно их увидеть: Celeron, Core 2 Quad и Duo.

socket()¶

См.также

  • http://unixhelp.ed.ac.uk/CGI/man-cgi?socket+2

Создаёт конечную точку соединения и возвращает файловый дескриптор.
Принимает три аргумента:

  1. domain указывающий семейство протоколов создаваемого сокета

    • AF_INET для сетевого протокола IPv4
    • AF_INET6 для IPv6
    • AF_UNIX для локальных сокетов (используя файл)
  2. type

    • SOCK_STREAM (надёжная потокоориентированная служба (сервис) или
      потоковый сокет)
    • SOCK_DGRAM (служба датаграмм или датаграммный
      сокет)
    • SOCK_RAW (Сырой сокет — сырой протокол поверх сетевого уровня).
  3. protocol

    Протоколы обозначаются символьными константами с префиксом IPPROTO_*
    (например, IPPROTO_TCP или IPPROTO_UDP). Допускается значение
    protocol=0 (протокол не указан), в этом случае используется значение по
    умолчанию для данного вида соединений.

Примечание

Функция возвращает −1 в случае ошибки. Иначе, она возвращает целое число,
представляющее присвоенный дескриптор.

Пример на Си

#include <sys/types.h>
#include <sys/socket.h>

int socket(int domain, int type, int protocol);
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

void error(const char *msg)
{
    perror(msg);
    exit();
}

int main(int argc, char *argv[])
{
    int sockfd, portno, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;

    char buffer256];
    if (argc < 3) {
       fprintf(stderr,"usage %s hostname port\n", argv]);
       exit();
    }

    // Задаем номер порта
    portno = atoi(argv2]);

    // Создаем сокет
    sockfd = socket(AF_INET, SOCK_STREAM, );
    if (sockfd < )
        error("ERROR opening socket");

    // Конвертирует имя хоста в IP адрес
    server = gethostbyname(argv1]);
    if (server == NULL) {
        fprintf(stderr,"ERROR, no such host\n");
        exit();
    }

    // Указываем тип сокета Интернет
    bzero((char *) &serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;

    // Указаваем адрес IP сокета
    bcopy((char *)server->h_addr,
         (char *)&serv_addr.sin_addr.s_addr,
         server->h_length);

    // Указываем порт сокета
    serv_addr.sin_port = htons(portno);

    // Устанавливаем соединение
    if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < )
        error("ERROR connecting");

    // Вводим сообщение из консоли
    printf("Please enter the message: ");
    bzero(buffer, 256);
    fgets(buffer, 255, stdin);

    // Отправляем данные
    n = write(sockfd, buffer, strlen(buffer));
    if (n < )
         error("ERROR writing to socket");

    // Сбрасываем буфер
    bzero(buffer, 256);

    // Читаем ответ
    n = read(sockfd, buffer, 255);
    if (n < )
         error("ERROR reading from socket");
    printf("%s\n", buffer);

    close(sockfd);
    return ;
}

Пример на Python

Какой лучший сокет процессора?

Думаю, что серьезность ошибки вы уже поняли. Теперь давайте подробно рассмотрим какие они бывают и какой сокет выбрать.

Как и любое высокотехнологичное оборудование и комплектующие, сокеты постоянно модернизируются, в результате чего появляются все более новые и производительные стандарты. Однако происходит это очень часто, в результате чего на рынке можно встретить как материнские платы со старыми разъемами, так и с новыми. И также наблюдается другая картина — из-за быстрого обновления вы можете не иметь возможности подобрать к 3-5 летнему компьютеру процессора, работающего с сокетом вашей материнской платы, или наоборот

Поэтому при выборе комплектующих для нового компьютера также важно ориентироваться в разновидностях сокетов, чтобы выбрать модель платы с самым новым на перспективу

На сегодняшний день процессоры производят две конкурирующие фирмы — Intel и AMD, каждый из которых выпускает свои стандарты сокетов. Любая материнская плата работает с одной из этих фирм и содержит один из типов сокетов под процессоры от данных производителей.

Выглядит он как прямоугольная площадка с множеством контактов и фиксатором, в который крепится процессор. Также вокруг него имеются несколько сквозных отверстий в плате, в которые крепится система охлаждения процессора, либо специальное пластиковое крепление вокруг него.

Визуально отличить современные сокеты процессоров Intel от AMD очень просто:

  1. Во-первых, на разъеме материнской платы для AMD расположено множество отверстий для контактов, которые в виде штырьков имеются на процессоре. На сокетах же Intel наоборот, сами контакты-ножки, а в процессоре отверстия.
  2. Также отличие в креплении процессора — в сокете Intel по периметру имеется металлическая рамка с защелкой-фиксатором. Процессоры AMD крепятся путем смещения верхней пластины сокета относительно нижней.
  3. И наконец, кулер (вентилятор) у Интел крепится в упомянутых выше отвестиях, а у АМД на специальную пластиковую рамку вокруг сокета. Все эти отличия можно видеть на скриншоте ниже.

Кроме того, фирма AMD предусмотрительно сделала некоторые сокеты совместимыми между младшими и старшими моделями одного поколения. Так, на сокет материнской платы AM3+ можно установить процессор как с более старым AM3, так и с AM3+. Но это работает не всегда, поэтому предварительно необходимо смотреть совместимость на сайте производителя.

В описании материнской платы и процессора сокет может оозначаться по-разному, например: «Socket», «S» или просто номер модели.

Рассмотрим для примера системную плату с сокетом Intel и процессор от AMD.

На данном скриншоте отображена плата с сокетом 1155, о чем явно говорит название: «ASRock H61M-DGS (RTL) LGA1155 PCI-E+Dsub DVI+GbLAN SATA MicroATX 2DDR-III»

А здесь изображена страница с процессором AMD с сокетом FM 2, что видно также из названия: «ASUS F2A85-V PRO (RTL) SocketFM2 3xPCI-E+Dsub+DVI+HDMI+DP+GbLAN SATA RAID ATX 4DDR-III»

Также модель сокета часто упоминается в описаниях кулеров для того, чтобы пояснить, на какой именно сокет он может быть установлен. Например, в примере ниже из заголовка мы сразу понимаем, с какими сокетами будет работать данный кулер ( Intel 775, 1155 и AMD AM2, AM3): Cooler Master Буран T2 (3пин, 775 / 1155 / AM2 / AM3, 30 дБ, 2200об / мин, тепл.тр.)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector