Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
[C++] Не пойму а где порт ставить (на ленись напиши пример) 11.07.01 13:11 Число просмотров: 917
Автор: Access Статус: Незарегистрированный пользователь
|
sockaddr to;
SOCKET sox=socket(AF_INET,0,SOCK_DGRAM);
sendto(sox,p,3,MSG_DONTROUTE,to,tolen);
|
<programming>
|
[C++] Помогите разобраться с UDP на Builder(5.0) 10.07.01 14:42
Автор: Access Статус: Незарегистрированный пользователь
|
Мне нужно сформировать пакет и отправить на сервер.
Может покажете на примере как создавать пакет, и отправлять.
Например его содержимое: 00 04 32 44 32
|
|
[C++] Помогите разобраться с UDP на Builder(5.0) 11.07.01 02:56
Автор: kabanchik Статус: Незарегистрированный пользователь
|
> Мне нужно сформировать пакет и отправить на сервер. > > Может покажете на примере как создавать пакет, и > отправлять. > > Например его содержимое: 00 04 32 44 32
если в ручную, то просмотри для начала структуру UDP.
но чтобы не возится легче открыть UDP-сокет (SOCK_DGRAM) и вызываешь sendto() - он все за тебя сделает.
|
| |
[C++] Не пойму а где порт ставить (на ленись напиши пример) 11.07.01 13:11
Автор: Access Статус: Незарегистрированный пользователь
|
sockaddr to;
SOCKET sox=socket(AF_INET,0,SOCK_DGRAM);
sendto(sox,p,3,MSG_DONTROUTE,to,tolen);
|
| | |
[C++] не ленюсь 12.07.01 01:30
Автор: kabanchik Статус: Незарегистрированный пользователь
|
> sockaddr to; > SOCKET sox=socket(AF_INET,0,SOCK_DGRAM); > sendto(sox,p,3,MSG_DONTROUTE,to,tolen);
весь работаяющий пример не накатаю, но дам направление, а то на себя времени не хватит :))) а остальное, я думаю сам с легкостью напишешь.
#define MY_PORT 1234
#define MY_ADDR "123.45.67.89"
SOCKET sock;
sockaddr_in recipient;
char buf[128];
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);
sendto(sock, buf, 128, 0, &recipient, sizeof(sockaddr_in));
// вот и все.
|
| | | |
[C++] Маленький трабл..... 12.07.01 11:43
Автор: Access Статус: Незарегистрированный пользователь
|
Всё бы хорошо, но в ф-ии
sendto(sock, buf, 128, 0, &sockaddr(ad), sizeof(sockaddr_in));
Компилятор не может выполнить: sockaddr(ad).......
А в структуре sockaddr нет пар-ов связанных с адрессом о портом
|
| | | | |
sendto(sock, buf, 128, 0, (sockaddr*) &ad, sizeof(sockaddr_in)) 12.07.01 14:49
Автор: kabanchik Статус: Незарегистрированный пользователь
|
|
| | | | | |
[C++] Но,это явное приведение, и информация теряется 12.07.01 21:37
Автор: Access Статус: Незарегистрированный пользователь
|
bbbb
|
| | | | | | |
ничего не теряется 13.07.01 00:18
Автор: kabanchik Статус: Незарегистрированный пользователь
|
ты явно путаешься.
все 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 Статус: Незарегистрированный пользователь
|
|
| | | | | | | | |
я дома читаю, а тeбе как удобно :))) 13.07.01 19:03
Автор: kabanchik Статус: Незарегистрированный пользователь
|
Есть книга - 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
удачи
|
|
|