[C++] Не пойму а где порт ставить (на ленись напиши пример)11.07.01 13:11 Число просмотров: 996 Автор: Access Статус: Незарегистрированный пользователь
> Мне нужно сформировать пакет и отправить на сервер. > > Может покажете на примере как создавать пакет, и > отправлять. > > Например его содержимое: 00 04 32 44 32
если в ручную, то просмотри для начала структуру UDP.
но чтобы не возится легче открыть UDP-сокет (SOCK_DGRAM) и вызываешь sendto() - он все за тебя сделает.
[C++] Не пойму а где порт ставить (на ленись напиши пример)11.07.01 13:11 Автор: Access Статус: Незарегистрированный пользователь
for (int i = 1; i <= 128; i ++)
buf[i - 1] = (char)i;
memset(&recipient, 0, sizeof(sockaddr_in));
sock = socket(AF_INET, SOCK_DGRAM, 0);
// вот тут все пишешь, куда и зачем
recipient.sin_family = AF_INET;
recipient.sin_port = htos(MY_PORT);
recipient.sin_addr.s_addr = inet_addr(MY_ADDR);
все sockaddr_XXXXX структуры приводятся к типу sockaddr. создавая сокет, ты уже указываешь, какие именно структуры будут посланы ф-иям.
т.к. у тебя сокет создан с параметрами AF_INET и SOCK_DGRAM - т.е. связь типа UDP/IP - это и указывает транспорту, что все данные sockaddr есть ни что иное как sockaddr_in. тоже самое для связи TCP/IP. да и в добавок ты посылаешь sizeof(sockaddr_in) (хотя на сколько помню sizeof(sockaddr_in) == sizeof(sockaddr)).
так что ни минуты не сомневаясь смело используй
ну и в добавок не помешает тебе почитать Network Programming, а то ты путаешься.
Где, где почитать Network Programming (а то всё облазил нефига не нашёл)13.07.01 12:02 Автор: Access Статус: Незарегистрированный пользователь
Есть книга - Network Programming for Microsoft Windows by Anthony Jones and Jim Ohlund, если достанешь, то куль !!!
если нет, то открой MSDN иди по следующим ниткам :
Platform SDK \ Networking and Directory Services\ Windows Sockets 2
все там есть. даже можно сказать, что все что написано в Network Programming-e скатали из MSDN.
дальше по нитке :
Windows Sockets 2 API \ Reference - найдешь Functions и Structures