nixp.ru v3.0

19 января 2017,
четверг,
16:09:26 MSK

DevOps с компанией «Флант»
Heavy написал 2 октября 2006 года в 21:28 (355 просмотров) Ведет себя как мужчина; открыл 55 тем в форуме, оставил 698 комментариев на сайте.

Посоветуйте, что почитать для написания сетевой проги на С/С++, которая запускается на двух компах в сети (что-то типа сетевого Сапёра :) ). Про то, как производить обмен пакетами по сети, как эти пакеты посылать, принимать и т.д.

myst

Кури Стивенса. :))

Heavy

Поконкретнее можно? (я уже план курил — не помогло))

myst

W. Richard Stevens, UNIX network programming, vol. 1 and 2

Heavy

Блин, а чё-нить попроще нет? (не в смысле что после плана тяжело, а в смысле что это по Всему, а мне надо по-видимому только несколько функций)

Longobard

Кури Стивенса, это классика. Для начала хватит нескольких первых глав, где основы. Потом уже будешь углубляться :)

Heavy

ОК, но где его взять? Идеи есть?

Code Monkey

http://www.poiskknig.ru

Heavy

1. Stevens R. Unix network programming vol.2 PH, 1999 564 p. English djvu, 5984 KB 10.6 KB/p. 300dpi OCR color

2. Stevens R. Unix network programming vol.1 PH, 1998 1011 p. English djvu, 10614 KB 10.5 KB/p. 300dpi OCR color

круто… Dark_SavanT, ссылка требует пароль, скажи, а :)

Heavy

Ну не вижу я чего там пишут в окошке авторизации, кракозябры там.

myst

eMule опять же…

Curu3MyHg
Heavy
ОК, но где его взять? Идеи есть?

У меня.

В бумажном виде.

На пару месяцев. )

Передам при первой возможности, мобыть, завтра-послезавтра.

Heavy

С меня пиво. А Кнут у тебя есть? (тож хочу почитать) Может у тебя ещё что-то по Си/Си++ полезное завалялось?

Code Monkey

Мож быть мне тогда на месяцок-другой кто-нть Страуструпа подгонит? :)

myst

Приезжайте в Брест. Обеспечу всем в оригинале :)

Code Monkey

Брест от питера как-то далековато, не находишь? :)

myst

А кто говорил, что это будет просто? :))

Heavy

Вот, собственно, попытка реализовать передачу/приём пакетов:

//MS visual c++ 7

#include «stdafx.h»

#include

#using

#using

using namespace System;

using namespace System::Text;

using namespace System::IO;

using namespace System::Net;

using namespace System::Net::Sockets;

int _tmain()

{

IPHostEntry* lipa = Dns::Resolve(S«192.168.228.128»);

IPEndPoint* lep = new IPEndPoint(lipa->AddressList[0], 139);

Socket* s = new Socket(lep->Address->AddressFamily,

SocketType::Stream,

ProtocolType::Tcp);

try {

s->Connect(lep);

} catch (Exception* e) {

Console::WriteLine(S"Exception Thrown: {0}», e);

}

Byte msg[] = Encoding::ASCII->GetBytes(«123»);

Console::WriteLine(Encoding::ASCII->GetString(msg));

// Blocks until send returns.

int i = s->Send(msg, SocketFlags::None);

Console::WriteLine(i);

// Blocks until read returns.

Byte bytes[] = new Byte[1024];

int j = s->Receive(bytes, SocketFlags::None);

Console::WriteLine(j);

//Displays to the screen.

Console::WriteLine(Encoding::ASCII->GetString(bytes));

s->Shutdown(SocketShutdown::Both);

s->Close();

Console::ReadLine();

return 0;

}

Айпишник указан мой, т.е. отправляю пакеты я сам себе.

Вопросы:

1) Почему отправляет байты нормально, а принимает всегда только 5?

2) Как мне из полученного пакета (типа unsigned char __gc[]) получить int?

Заранее спасибо за помощь

Feuerbach

winsock2.h, да уж. Но даже если кто-то будет читать твой код для одной популярной ОС, ему не помешает знать, что у тебя в stdafx.h спрятано.

Heavy

#include

#include

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.