Подключяем джойстик от приставки к компьютеру

47
Сейчас я Вам скажу довольно неожиданную вещь. ИГРАТЬ НА КЛАВИАТУРЕ В ИГРЫ НЕ УДОБНО. Она просто не приспособлена для этого, Представьте себе автомобиль, у которого вместо руля пишущая машинка . Клавиатура громоздка, далеко от компьютера ее не утащишь. А Вы пробовали играть вдвоем на одной клавиатуре? В Mortal Combat, например, где клавиши Выходят из строя уже на первом месяце и ваш соперник норовит нажать побольше клавиш одновременно, чтобы заблокировать ваши движения и не дать провернуть комбо? А играть втроем-вчетвером? Это уже совсем невозможно. Хотя бы потому, что тесно и соперник норовит толкнуть Вас в бок.Сейчас я Вам скажу довольно неожиданную вещь. ИГРАТЬ НА КЛАВИАТУРЕ В ИГРЫ НЕ УДОБНО. Она просто не приспособлена для этого, Представьте себе автомобиль, у которого вместо руля пишущая машинка . Клавиатура громоздка, далеко от компьютера ее не утащишь. А Вы пробовали играть вдвоем на одной клавиатуре? В Mortal Combat, например, где клавиши Выходят из строя уже на первом месяце и ваш соперник норовит нажать побольше клавиш одновременно, чтобы заблокировать ваши движения и не дать провернуть комбо? А играть втроем-вчетвером? Это уже совсем невозможно. Хотя бы потому, что тесно и соперник норовит толкнуть Вас в бок. 

Уверен многие видели в магазинах джойстики для компа, к примеру от Sony PlayStation.
К сожалению они стоят очень дорого, но почему бы не сделать такой самим? Существует вполне реальная возможность играть таким геймпадом/джойстиком на ПК — совместимом компьютере, даже не самом мощном. Большинство игр и программ не смогут отличить вашего устройства от фирменного джойстика за несколько $100. (почему то считается раз какой прибамбас к компьютеру, то обязательно стоить должен баснословные деньги) Самая фишка в том, что этот джойстик можно использовать в любой игре, просто при назначении клавиш назначайте их на кнопки джойстика. 
Вообще GamePad — устройство очень похожее на аналоговый джойстик. Различие между типичным джойстиком и GamePadом — в характеристиках оси. Джойстики обычно имеют две оси — X и Y. Непрерывное движения рычага вдоль этих осей с помощью двух потенциометров преображаются в аналоговые электрические сигналы, которые потом с помощью АЦП преобразуются в цифровые, на основании которых вычисляются переменные X и Y. GamePad же имеет не-пропорциональные величине отклонения от центра величины X и Y для девяти позиций (включая центр), он гораздо проще по конструкции, и, следовательно, более надежен. 
Конструкция очень простая. Просто дважды убедитесь прежде чем проверять сделанный вами интерфейс, убедитесь что все провода припаяны правильно, и, что никакие оголенные провода не касаются чего-нибудь. Я сильно рекомендую использовать корпус для этих интерфейсов, чтобы уменьшить риск короткого замыкания.
Начнем с джойстика для Dendy или NES. 
Если у вас есть gamepad, и у него есть кнопки A, B, Turbo A, Турбо B, Select и Begin (последних двух может и не быть, настоятельно рекомендую такие не брать) и связывается через 5 проводов, тогда это или NES или аналог NES и будет работать если Вы все сделаете правильно. 
Однако пора приступать к делу. Все, что вам понадобится — это разъем LPT порта (он же параллельный, он же от принтера), паяльник, 5 1N914 или 1N4148 диодов, ну и, собственно, сам джойстик. Приступим.

Вот сам разъем джойстика (правда похож на СОМ) 


Спаивается все по схеме, если хотите подключить два джойстика, то все провода припаиваются также кроме 8 и 7 контакты на NES, их надо припаять к 11 и 12 контакту на LPT. 


Чтобы припаять провода по схеме надо вскрывать разъем, я же предлагаю сделать все гораздо проще. Можно просто сделать своеобразный удлинитель переходник. 
Помимо LPT нам понадобится еще и СОМ разъем(папа) 



Еще очень важная деталь. На диодах есть маркировка, их следует припаивать полосочкой вверх. Просто припаиваете проводки по схеме к LPT и все. 


Получается очень даже 
 
Как его настроить я расскажу в конце статьи. 
Чтобы получить максимальное удовольствие, я скачал эмулятор Dendy. Вкратце что такое эмулятор. Такая прога которая полностью эмулирует какую либо игровую приставку, игры для нее также подгружаются отдельно, любую игру можно качнуть в интернет. 


Вот вам Suprer Mario.


А вот и черный плащ.
Только настоящий игровой гурман оценит это. 

Ну а теперь джойстик для Sony Playstation (PSX). 


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


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

Хочу заметить что на схеме изображена обратная сторона порта для PS.





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

Как подключить джойстик от приставки Денди/Dendy  к компьютеру
Для того чтоб подключить второй джойстик, надо припаять все его провода также, но 9 контакт с PSX следует припаять на 13 контакт на LPT, а 1 контакт с PSX на 15 контакт на LPT. Вот и все. 
Теперь конкретно о процедуре настройки, хотя тут дело еще проще. 
Сначала надо скачать дрова DirectPad Pro (где скачать, гуглим, первоначальные источники более не существуют
  • В панели управления Windows выбираете игровые устройства (иконку джойстика) и жмете кнопку «Добавить». В появившемся окне опять жмете кнопку «Добавить», а потом «Установить с диска».
  • Далее находите ту директорию, в которую вы распаковали архив драйвера и выбираете появившуюся строчку DirectPad Pro.Inf. После этого пару раз жмем ОК и добавляем устройство DirectPad Pro Standard And Force FeedBack
  • Затем в списке игровых устройств можно будет выбрать DirectPad Pro Controller и DirectPad Pro Force FeedBack Controller. Выбираем соотвествующий драйвер и в окне «Игровые устройства» появляется наш контроллер.



  • Теперь нажимаем кнопку «Свойства» и попадаем в окно конфигурации драйвера. Выбирайте затем выберите ID джойстика (пишется посередине сверху) и поставьте номер в списке, рядом с Conroller Type (он может и не быть 1, если до этого у вас в системе были установлены другие джойстики).
  • После этого выберите правильный адрес вашего LPT-порта (можно посмотреть в Системе: Устройства — Порты COM и LPT обычно 378).
  • Вот и все! В конечном итоге у Вас получился DirectInput совместимый джойстик, т.е. можно будет играть в любой windows игре, поддерживающей джойстик через драйверы DirectX. Необходимо только выбрать DirectPad Controller в настройках игры.

На работоспособность были протестированы: NFS Undergraund, Max Payne2, Worms 3D, GTA 3, GTA Vice city и т. д.  Схемы на 100% работоспособны. Наслаждайтесь.
Комментариев: 0

самореализация личности в брачно-семейных отношениях - фантастический триллер не для слабонервных....

Комментариев: 0

Светодиодная цветомузыка своими руками

  Доброго времени суток Так будет выглядеть цветомузыка на светодиодах, которую мы сегодня сделаем своими руками.

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

Что понадобится

Для начала сборки цму своими руками соберем и подготовим все необходимое для этого.  Вот список:

  1. пяти миллиметровые светодиоды;
  2. провод 3.5 от наушников;
  3. транзистор КТ817 или аналогичный;
  4. сетевой адаптер 12В;
  5. оргстекло;
  6. провода для подключения;
  7. клей;
  8. наждачка нулевка.

Пошаговая сборка цветомузыки

Перед началом процесса сборки необходимо подготовить детали для корпуса, для их изготовления будем использовать оргстекло. Цветомузыкальный коробок может быть любого размера по вашему желанию. Главное не ошибиться с разметкой, особенно если вы ограничены в материалах, поэтому следуем золотому правилу — «семь раз отмерь, один раз отрежь». На фото изображена следующая разметка: боковые стенки 15х5 см и торцевые 5х5 см.

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

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

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

Со светодиодами наждачкой делаем то же самое.

Начинаем склеивать куски оргстекла в единый корпус.

Теперь мы подошли к ответственному моменту — расчетам количества светодиодов. Здесь будем использовать следующую формулу:

Выходное рабочее напряжение адаптера / номинальное рабочее напряжение одного светодиода = необходимое количество светодиодов

В моем случае это 12В сетевой адаптер, поэтому уравнение такое 12/3 = 4 светодиода. Берем их и все необходимое (провода, транзистор)

Дошла очередь до провода от наушников. Отрезаем (если это еще не сделано) наушники, раскрываем провод и получаем три внутренних проводка. Нам нужен общий (медный) и один из прожил каналов (белый или красный, не важно).

Теперь ниже я приведу схему подключения цветомузыки на светодиодах:

Продолжаем сборку цветомузыки своими руками. Вставляем провода в подготовленные отверстия в склеенном корпусе.

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

Проверяем работоспособность и если все хорошо, то склеиваем последнюю часть цветомузыки.

Цму готова! Спасибо за внимание.

 

Комментариев: 0

СТИХ ПРОГРАММИСТА

У каждого дела запах особый. 
В булочной пахнет сгоревшею сдобой. 
Мясом протухшим пахнет мясник. 
Газом угарным пахнет печник.

Пахнет молочник прокисшей сметаной. 
Пахнут шахтеры горелым метаном. 
Пахнет газетчик как дохлая утка, 
Как парфюмерный отдел — проститутка. 
Пахнет хирург неудачным наркозом. 
Пахнет доярка вечерним навозом. 
Содранной шкурой пахнет скорняк. 
Ассенизатор… Ну знаете как. 
Пахнет кухарка капустою кислой. 
Пахнет сестра медицинская клизмой. 
Тещи, как правило, пахнут блинами, 
Все на таможне — большими деньгами. 
Пахнет партиец как красные флаги. 
Hянечка пахнет подгузником Хагги. 
Пахнет сапожник густым гуталином, 
А от портного несет нафталином. 
Столяр слегка отдает скипидаром, 
А постовой на углу — перегаром. 
Пахнет аптечный киоск аспирином, 
А популярный певец — кокаином. 
Консул английский пахнет овсянкой, 
Школьный учитель разит валерьянкой. 
Пахнет несвежим солдат сапогом. 
Пахнет горячим браток утюгом. 
Пахнет ревматик озокеритом. 
Пахнет любитель рывков динамитом. 
Килькой в томате пахнет турист, 
Йодом с зеленкой спортсмен альпинист. 
Пахнет священник святою водою. 
Пахнут раввины кошерной едою. 
Азбукой Морзе пахнет радист. 
А героином контрабандист. 
Hефтью разлитой пахнет моряк. 

Лишь программисты… не пахнут никак 

«Лишь программист не пахнет никак»,- 
Подумать такое мог только дурак. 

Он пахнет вчерашней лапшой магазинной, 
Некормленной кошкой, двухдневной щетиной, 
Носком неопрятным, просроченной водкой, 
Кофейною гущей, сгоревшей проводкой, 
Он пахнет советским, столетним, ядреным 
Тройным и убийственным одеколоном, 
Бумагой измятой и пыльной дискетой, 
Четыреста сорок восьмой сигаретой, 

Но все же наивен и девственно чист 
Наш милый и добрый дружок-программист 
Когда рядом с ним нарисуется мина 
Немного обиженного сисадмина… 

«С»-кодировщик пахнет структурой, 
Visual Basic пахнет халтурой. 
С++ пахнет полиморфизмом, 
Оракл пахнет бюрократизмом, 
Митингом нудным разит DBA, 
Пахнет Main Frame, словно старый еврей. 
Web-программист пахнет связью случайной, 
Пахнут COBOL программисты отчаянием. 
Пахнет PASCALщик чем-то забытым, 
ACCESS разработчик — корытом разбитым. 
Вместе все пахнут словно бардак - 
Тестеры только не пахнут никак! 

Это неправда! Понюхайте сами, 
Тестеры вечно пахнут клопами... 
Только зайдешь к ним и глянешь вокруг - 
Так копошится какой-нибудь жук. 
Hад программистом, как муха жужжит. 
— Тут не работает, там не стоит... 
Даже админ отмахнуться не сможет, 
Запах жука ему встанет дороже. 
Hе зная ни кода и не системы, 
Тестеры пахнут общей проблемой ! 

И кто вам сказал, что не пахнут программы?! 
Этому ль с детства учили нас мамы? 
Пахнет программа бессонною ночью 
Пахнет начальником, рвущим вас в клочья 
Здесь она пахнет хорошей зарплатой 
Нервной системы гигантской затратой.


Комментариев: 0

Без заголовка

Софт Софт для просмотра российских каналов на Украине
 Софт Софт для отслеживания запросов
Софт Софт для публикации контента в соц сетях

Софт ПО для отслеживания качества соединения с Интернет (оценка провайдера) — посоветуйте, пожалуйста

Комментариев: 0

Без заголовка

Софт Софт для отправки СМС
Софт Софт для монитогинга сети
Софт Софт для Twitter
Софт Посоветуйте софт для скачивания видео(youtube)
Софт Софт для видеоконференций

Комментариев: 0

Без заголовка

<a href=«nick-name.ru/nickname/id983191/»><img src=«nick-name.ru/img.php?id=983191&sert=1» alt=«Сертификат на никнейм felix.trush, зарегистрирован на Труш Феликс» border=«0» /></a><br /><a href=«nick-name.ru»>Сертифицируй твой nickname!</a>

Комментариев: 0

Мини лодка

 Она проста в изготовлении, не требует дефицитных материалов. Длина лодки всего 2 м, а ширина не превышает 800 мм (рис. 1). Тем не менее на плаву она способна удержать груз в 250 кг, что вполне достаточно для одного взрослого рыбака с его полной рыбацкой амуницией.


А самое необычное лодка-малютка перемещается не на веслах, а с помощью настоящего гребного винта, приводимого в движение педалями. Значит, руки свободны. Хочешь держи их на руле, а нет –  закидывай спиннинг. Теперь рассмотрим, как устроен корпус (рис. 2). Он не имеет классического «скелета», состоящего из мощных шпангоутов и стрингеров. Несущими элементами служат борта лодки. Они выполнены из хорошо оструганных шпоновых осиновых досок толщиной 18…20 мм, набранных вдоль корпуса.
Задняя стенка — транцевая доска, днище и сиденье набираются из тех же досок, но уже поперек корпуса. Верхняя носовая часть закрыта фанерой толщиной 4…5 мм. В ней предусмотрен люк для небольшого багажника.
Все детали корпуса тщательно подгоняются друг к другу, склеиваются водостойким клеем, эпоксидным, БФ-6 и для большей прочности стягиваются еще и шурупами. Далее все швы промазываются водостойкой битумной мастикой. Хорошо достать «морской сурик», но можно воспользоваться обычным суриком или густотертой масляной краской. После высыхания мастики лодку нужно обязательно трижды прокрасить масляной краской для наружных работ.
Как видите, педальный привод качающегося типа (рис. 3). Ноги упираются в рычаги, которые передают усилия посредством ленточных тяг на коленчатый вал. Его назначение -преобразовывать возвратно-поступательные движения рычагов во вращение вала. На коленчатом валу установлены ведущая шестерня и небольшой маховичок массой 2.5…3 кг. Назначение последнего – сглаживать неравномерную работу рычагов.

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

 

На оси редуктора жестко закреплены ведомая, прямозубая и ведущая коническая шестерни. Малая ведомая, коническая шестерня закреплена на валу гребного винта. А сам вал пропущен через втулку, закрепленную в задней стенке лодки. Обратите особое внимание на устройство, обеспечивающее герметичность гребного вала во втулке (рис. 4). На конце вала установлен винт маломощного подвесного лодочного мотора. Для большей прочности гребной вал через втулку подсоединен к кронштейну, жестко закрепленному в проеме транцевой доски. Рычаги педалей и коленвал изготовлены из стального прутка диаметром 10… 12 мм. Кронштейны крепления рычагов и педальные тяги из листовой стали толщиной 2,5…3 мм.

 


Для удобства сборки коленчатый вал сделан разрезным. А между собой обе его части соединяются трубчатой втулкой и шпонками (рис. 5).
При выборе прямозубых и конических шестерен передаточное отношение каждой пары должно быть примерно 1:3. Тогда суммарное передаточное отношение

в этом случае будет 1:9. На практике это означает, что за один оборот коленчатого вала гребной винт сделает девять оборотов. А больше и не нужно.
Рулевое управление (рис. 6} – — тросовое, с двумя рулевыми лопастями. Кронштейны рулевых лопастей изогнуты в верхней части и проходят внутрь лодки.
Рулевое колесо (любого типа — хоть от автомобиля) жестко связано с рулевой колонкой, которая проходит сквозь «приборную» доску и упирается в выемку бруска, расположенного на поперечной перекладине. К ней в свою очередь также крепятся и кронштейны педалей.
На колонке руля закреплен шкив диаметром 60…80 мм. Ширина паза шкива должна быть не менее двух-трех диаметров применяемого троса.
Средняя часть троса для надежности охватывает шкив 2 – — 3 раза, а концы его пропущены вдоль корпуса лодки изнутри через поворотные ролики и выходят на внутреннюю плоскость транцевой доски. Здесь они продеты через поперечные отверстия в специальных болтах (рис. 7), фиксируемых на рулевых лопастях. Свободные концы троса заделаны в наконечниках и стягиваются пружиной с усилием 10…12 кг.

 


Если рулевая система и педальный привод работают надежно, приступайте к испытаниям своего плавсредства на воде. И тут главное ~ проверка герметичности корпуса. Загрузите лодку грузом-не менее 250 кг и проследите за швами. Места, где обнаружатся капли, отметьте мелом. Остается вытащить лодку на берег и еще раз тщательно проконопатить слабые места паклей, пропитанной битумной мастикой.
Ю.АНТОНОВ

Журнал “Левша” №3-97г.

Комментариев: 0

Чат

В этой статье я расскажу как в шестом билдере написать свой чат по сети.

Создаем две папки: сервер и клиент.

Для начала создадим сервер.  Запустим билдер,  создадим новый проект (File->New->Application).  Сразу сохраним его в папку «сервер». Добавляем на формы следующие компоненты и изменяем свойства:

  • Label1 — В свойстве Caption пишем «Порт»
  • Edit1 — В свойстве Text пишем «5648», это будет наш порт для подключения, можно задать любой другой.
  • Button1 - В свойстве Caption пишем «Создать»
  • Memo1 — В свойстве Lines удаляем все строки
  • Edit2 - В свойстве Text стираем все символы
  • Button2 - В свойстве Caption пишем «Отправить»
  • ServerClient1 — Ничего не меняем


Теперь необходимо переименовать наши компоненты,  для этого изменяем свойство «Name»:

  • Label1 — Оставим как есть
  • Edit1 -> EditPort
  • Button1 -> ButtonStart
  • Memo1 -> MemoMessages
  • Edit2 -> EditMessage
  • Button2 -> ButtonSend
  • ServerClient1 -> ServerClient
  • Form1 -> FormMain

Все компоненты аккуратно расставили, и теперь начинаем писать код. Дважды щелкаем по кнопке «Создать», пешем следующий код:

Выделить все
1
2
3
4
EditPort<span style="color: #000040;">-</span><span style="color: #000080;">></span>Enabled <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отключаем поле ввода порта</span>
ButtonStart<span style="color: #000040;">-</span><span style="color: #000080;">></span>Enabled <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отключаем кнопку запуска</span>
ServerSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Port <span style="color: #000080;">=</span> EditPort<span style="color: #000040;">-</span><span style="color: #000080;">></span>Text.<span style="color: #007788;">ToInt</span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Задаем серверу порт</span>
ServerSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Active <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Включаем сервер</span>

Далее нам необходимо написать функцию рассылки сообщений, ее нужно писать после функции __fastcall TFormMain::TFormMain (TComponent* Owner). Код:

Выделить все
1
2
3
4
5
6
7
8
<span style="color: #0000ff;">void</span> TFormMain<span style="color: #008080;">::</span><span style="color: #007788;">SendingMessages</span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span>AnsiString Message<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span> <span style="color: #666666;">//Функция рассылки сообщений</span>
<span style="color: #008000;">{</span>
  MemoMessages<span style="color: #000040;">-</span><span style="color: #000080;">></span>Lines<span style="color: #000040;">-</span><span style="color: #000080;">></span>Add<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span>Message<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Вывод сообщения на экран</span>
  <span style="color: #0000ff;">for</span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;"><</span> ServerSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Socket<span style="color: #000040;">-</span><span style="color: #000080;">></span>ActiveConnections<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span> <span style="color: #666666;">//Цикл перебирает всех подключенных</span>
  <span style="color: #008000;">{</span>
    ServerSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Socket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Connections<span style="color: #008000;">[</span>i<span style="color: #008000;">]</span><span style="color: #000040;">-</span><span style="color: #000080;">></span>SendText<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span>Message<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Рассылка сообщений</span>
  <span style="color: #008000;">}</span>
<span style="color: #008000;">}</span>

Кстати еще в .h файле в разделе private необходимо написать void SendingMessages (AnsiString Message);

Вернемся на форму, выберем у ServerSocket обработчик OnClientRead в вкладке Events, щелкаем два раза, пишем код:

Выделить все
1
SendingMessages<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span>Socket<span style="color: #000040;">-</span><span style="color: #000080;">></span>ReceiveText<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Читаем сообщения и рассылаем их через функцию SendingMessages()</span>

Щелкаем два раза по кнопке отправить, пишем код:

Выделить все
1
SendingMessages<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span><span style="color: #ff0000;">"Сервер: "</span> <span style="color: #000040;">+</span> EditMessage<span style="color: #000040;">-</span><span style="color: #000080;">></span>Text<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Рассылаем сообщение через функцию SendingMessages()</span>

И последнее, выберем у формы обработчик OnClose и впишем в него:

Выделить все
1
ServerSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Active <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//При закрытии формы отключаем сервер</span>

Компилируем, сервер готов.

Теперь напишем клиент. Создаем новый проект (File->New->Application).  Сразу сохраним его в папку «клиент». Добавляем на формы следующие компоненты и изменяем свойства:

  • Label1 — В свойстве Caption пишем «Порт»
  • Label2 — В свойстве Caption пишем «Хост»
  • Label3 — В свойстве Caption пишем «Ник»
  • Edit1 — В свойстве Text пишем «5648», это будет наш порт для подключения, можно задать любой другой.
  • Edit2 - В свойстве Text пишем «127.0.0.1»
  • Edit2 - В свойстве Text пишем «Гость»
  • Button1 - В свойстве Caption пишем «Подключиться»
  • Memo1 — В свойстве Lines удаляем все строки
  • Edit2 - В свойстве Text стираем все символы
  • Button2 - В свойстве Caption пишем «Отправить»
  • ServerSocket1 — Ничего не меняем <img style=«border: 1px solid #d3eaf3; padding: 5px;» class=«wp-smiley» alt="" src=«libixur.ru/wp-includes/images/smilies/icon_smile.gif»/>

Теперь необходимо переименовать наши компоненты,  для этого изменяем свойство «Name»:

  • Label1 -> Оставим как есть
  • Label2 -> Оставим как есть
  • Label3 -> Оставим как есть
  • Edit1 -> EditPort
  • Edit2 -> EditHost
  • Edit2 -> EditName
  • Button1 -> ButtonConnect
  • Memo1 -> MemoMessages
  • Edit2 -> EditMessage
  • Button2 -> ButtonSend
  • ServerSocket1 -> ServerSocket

Пишем код для компонентов, начнем с кнопки «Подключиться»:

Выделить все
1
2
3
4
5
6
7
EditPort<span style="color: #000040;">-</span><span style="color: #000080;">></span>Enabled <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отключаем поле ввода порта</span>
EditHost<span style="color: #000040;">-</span><span style="color: #000080;">></span>Enabled <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отключаем поле ввода хоста</span>
EditName<span style="color: #000040;">-</span><span style="color: #000080;">></span>Enabled <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отключаем поле ввода ника</span>
ButtonConnect<span style="color: #000040;">-</span><span style="color: #000080;">></span>Enabled <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отключаем кнопку подключения</span>
ClientSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Port <span style="color: #000080;">=</span> EditPort<span style="color: #000040;">-</span><span style="color: #000080;">></span>Text.<span style="color: #007788;">ToInt</span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Задаем клиенту порт для подключения</span>
ClientSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Host <span style="color: #000080;">=</span> EditHost<span style="color: #000040;">-</span><span style="color: #000080;">></span>Text<span style="color: #008080;">;</span> <span style="color: #666666;">//Задаем клиенту хост для подключения</span>
ClientSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Active <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span> <span style="color: #666666;">//Включаем клиента</span>

Кнопка «Отправить»:

Выделить все
1
ClientSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Socket<span style="color: #000040;">-</span><span style="color: #000080;">></span>SendText<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span>EditName<span style="color: #000040;">-</span><span style="color: #000080;">></span>Text <span style="color: #000040;">+</span> <span style="color: #ff0000;">": "</span> <span style="color: #000040;">+</span> EditMessage<span style="color: #000040;">-</span><span style="color: #000080;">></span>Text<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Отсылаем на сервер ник и сообщение</span>

Обработчик OnRead у компонента ClientSocket:

Выделить все
1
MemoMessages<span style="color: #000040;">-</span><span style="color: #000080;">></span>Lines<span style="color: #000040;">-</span><span style="color: #000080;">></span>Add<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span>Socket<span style="color: #000040;">-</span><span style="color: #000080;">></span>ReceiveText<span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ac.gif" alt="" /></span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008000;"><img src="http://s.mypage.ru/images/smiles/animated/ad.gif" alt="" /></span><span style="color: #008080;">;</span> <span style="color: #666666;">//Выводим на экран принятое сообщение</span>

Обработчик OnClose у формы:

Выделить все
1
ClientSocket<span style="color: #000040;">-</span><span style="color: #000080;">></span>Active <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//При закрытии формы отключаем клиента</span>

Все, клиент тоже готов. Компилируем...
Теперь можем проверить работоспособность нашего чата, для этого сначала запускаем сервер, жмем «создать». Затем запускаем клиент, жмем «Соединиться». Пробудем писать, сообщения должны отсылаться и отображаться в каждом окне.

Исходник: sozdanie-setevogo-chata-na-c-builder-6.zip

Будут вопросы, обращайтесь!

Комментариев: 0

Моя Супер Флэшка

 

Хотите что бы при подключении вашей флешки(USB Flash) к компьютеру сразу запускалась нужная Вам программа, или просто установить стильную иконку на неё?

Все очень просто, создаем в корне Вашей флешки текстовый документ и переименовываем его в «Autorun.inf». Открываем созданный нами файл и вставляем в него данные стоки:

<span style="font-size: medium;">1
2
3
4
5
</span>
<span style="font-size: medium;">[AutoRun]
Open = Программы\my_prog.exe
Action = Моя супер программа
Icon = Изображения\Иконка.ico
Label = Моя супер флешка</span>
  • Open = Программы\my_prog.exe — Полное имя программы (Путь + имя), в нашем случае запустится программа «my_prog.exe» лежащая на флешке в папке «Программы»
  • Action = Моя супер программа — Имя программы которое будет отображаться на экране
  • Icon = Изображения\Иконка.ico — Полное имя иконки (Путь + имя) которая будет отображаться в «Моем компьютере», в нашем случае это иконка «Иконка.ico» лежащая на флешке в папке «Изображения»
  • Label = Моя супер флешка — Имя флешки которое будет отображаться в «Моем компьютере», у меня отразилось максимально 42 символа (Это намного больше чем можно задать просто через Windows)

Если Вы желаете просто установить свою иконку на флешку, то нужно оставить всего 2 строчки:

Выделить все

<span style="font-size: medium;">1
2
</span>
<span style="font-size: medium;">[AutoRun]
Icon = Изображения\Иконка.ico</span>

При необходимости можно добавить еще параметр «Label».  Ну вот в общем то и все! 

Комментариев: 0
накрутка инстаграм
все 5 Мои друзья