forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   IP в UDP (http://forum.boolean.name/showthread.php?t=549)

Diplomat 12.01.2006 16:57

Цитата из Хелпа, слегка поставившая меня в тупик:
Цитата:

SendUDPMsg udp_stream,dest_ip[,dest_port]

Parameters
udp_stream - UDP stream handle
dest_ip - destination IP address
dest_port (optional) - destination port number*

Description
Transmits all the data written to the UDP stream to the specified IP address and port. Data is written using the standard stream commands. If no destination port is specified, the port number used to create the UDP Stream is used.

Note that IP addresses must be in integer format, NOT in dotted IP format.

Тут как раз возникает неожиданный вопрос: ну и как перевести "точечный IP формат" в целое число?

P.S. "Интуитивный" метод- просто убрать точки- конечно же не работает. "Автоопределитель" АйПи, ф-я HostIP, возвращает в качестве моего номера число (-1062730740). Мой 213.179.233.126 это число напоминает мало...

SubZer0 12.01.2006 17:19

хммм вопрос интересный... я тут по нету полазил нашел функцию на php по преобразованию ip

Код:

function IPAddress2IPNumber($dotted) {
$dotted = preg_split( "/[.]+/", $dotted);
$ip = (double) ($dotted[0] * 16777216) + ($dotted[1] * 65536) + ($dotted[2] * 256) + ($dotted[3]);
return $ip;
}

из этого следует, что первое число надо умножить на 16777216, второе на 65536, третье на 256, и четвертое просто дописать... хз что из этого получится... попробуй...

:)

SubZer0 12.01.2006 17:25

еще может такая система имеется там ввиду

Цитата:

To convert the more common ``dotted decimal'' IP address into its hex equivalent, convert each of the address' four groups of numbers into hex. If the resulting hex number is only one digit, add a leading zero to it. Then append all four hex numbers together. For example, take the IP address 10.0.2.254. Convert each set of four numbers into hex, and add a leading zero where necessary:


10 = A or 0A
0 = 0 or 00
2 = 2 or 02
254 = FE or FE

Therefore, the IP address 10.0.2.254 in hex is: 0A0002FE.

:)

AsmLover 12.01.2006 18:20

Если на С++, то есть стандартная функция в Ws2_32.dll inet_addr, которая конвертнет dot-представление, если влом сдвигать и складывать в Блитце.

Diplomat 12.01.2006 19:16

Спасибо за помощь!

А, вот еще вопросы, заметно более ламерские:
1. Существуют ли, хм... предпочтения... в использовании портов при создании стрима? Я так понимаю, что можно использовать любое число-номер порта, кроме уже использующихся?
2. Не подскажете, где можно арендовать сервер?

SubZer0 12.01.2006 20:51

Цитата:

Originally posted by Diplomat+Jan 12 2006, 06:16 PM--><div class='quotetop'>ЦИТАТА(Diplomat @ Jan 12 2006, 06:16 PM)</div><div class='quotemain'>1. Существуют ли, хм... предпочтения... в использовании портов при создании стрима? Я так понимаю, что можно использовать любое число-номер порта, кроме уже использующихся?[/b]
ага, числа до 65536 можно юзать по своему усмотрению, ужо открытые порты можно в файерволе посмотреть, кроме того, помимо Ip и номера порта есть еще такая характеристика "идентификатор подключения", она дается клиенту на момент подключения, поэтому можно кучу приложений (по моему 255) подвесить без проблем на один порт... (я когда тыкался сетевое ченить написать, у меня 5 клиентов на одном порту висело и сбоев небыло) :)

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


<!--QuoteBegin-Diplomat
@Jan 12 2006, 06:16 PM
2. Не подскажете, где можно арендовать сервер?[/quote]
по подробнее плиз, что за сервер? сколько места... поддержка всяких PHP Perl... или может Shell (возможность запуска виндовых приложений на сервере) нужон... :)

Diplomat 12.01.2006 21:47

Цитата:

по подробнее плиз, что за сервер? сколько места... поддержка всяких PHP Perl... или может Shell (возможность запуска виндовых приложений на сервере) нужон...
Хм, именно, чтоб можно было запустить на нем .ЕХЕ-шник, который будет работать сервером- узлом связи для сетевой игры. Места нужно очень немного: сами исполнимые, да еще тестовые конфигурационные данные. Метров 5-7 по моим подсчетам вполне хватит. Скорость линии тоже не самая высокая: что-то вроде ISDN 128КБит должно потянуть. Другое дело обьемы траффика в месяц: довольно жутко звучит цифра в 50Гигов... :dontknow:

SubZer0 12.01.2006 22:26

даже хз где можно заказать, я сам-бы не против такое купить... :unsure:

jimon 12.01.2006 23:23

купи дополнительный камп и подключи к UA-IX
только ето слишком геморно, много бумажек подписывать надо будет

арендовать сервер на такой трафик - очень дорого будет

Diplomat 13.01.2006 00:00

Хм, отсутствие ISDN и 50Гигов траффика вовсе не означает провала! :)

Тогда вопрос по другому:
на какую скорость коннекта, обьем трафика и возможность запуска ЕХЕ-шников можно расчитывать за, скажем, $5-20 в месяц?

jimon 13.01.2006 21:54

exe тебе вообще не дадут запускать в принципе, так как сервера зачастую на линуксе ето вопервых
вовторых - разрешить администратору запустить exe - потенциально опасно для всего сервера (возможно и кластера)

потому пиши сервер на perl ;) кстати - довольно реально
так как icq клиенты на перле существуют, и много чего существует на perl

................
на holm.ru - пакет pro... место - 1 гб, трафик неограниченый :) думаю то что ты искал :))

ps. а там любой платный хостинг с неограниченым трафиком ! :))

Vsoler 06.08.2007 13:36

Re: IP в UDP
 
А как у вас (в вашей местности) с реальными ИП? Если есть есть возможность, то это решение всех проблем, потому что твой домашний комп становится сервером и запускай что угодно.

Diplomat 06.08.2007 21:55

Re: IP в UDP
 
Товарищ археолог Vsoler, посмотрите на дату создания темы, придите в ужас и не занимайтесь больше гробокопательством.


Часовой пояс GMT +4, время: 20:38.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot