Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: UDP SERVER
 
 автор: raadmin   (28.12.2007 в 14:40)   письмо автору
 
 

Здравствуйте. Может вопрос не совсем в тему.

У меня есть GPRS-модем, который умеет передавать данные в INTERNET на заданный порт и IP по протоколу UDP. Сейчас он передает на другой модем и все работает. Мне нужно организовать сервер в INTERNET, который бы принимал и хранил эти данные. Можно ли сделать это средствами PHP (я знаю, что есть функции socket_*) на обычном WEB-хостинге? Если я напишу скрипт, который создает сокет и ждет соединения, то как мне запустить этот скрипт на сервере? Я тут не очень понимаю технологию и возможно ли это вообще.

Никто не знает?

   
 
 автор: mihdan   (29.12.2007 в 12:55)   письмо автору
 
   для: raadmin   (28.12.2007 в 14:40)
 

Чтобы запустить скрипт - просто вызовите его через сокет!

   
 
 автор: raadmin   (09.01.2008 в 16:04)   письмо автору
 
   для: mihdan   (29.12.2007 в 12:55)
 

Что это значит? Я имел представление о том, что сокет - это что-то вроде сессии связи, его можно открыть, передавать в него данные или забирать их оттуда (что делается в скрипте). Как можно вызвать скрипт через сокет я не понимаю.

   
 
 автор: raadmin   (11.01.2008 в 13:39)   письмо автору
 
   для: raadmin   (09.01.2008 в 16:04)
 

Никто не знает что ли? Может хоть посоветуете где спросить (что почитать) по работе с сокетами?

   
 
 автор: Unkind   (11.01.2008 в 14:47)   письмо автору
 
   для: raadmin   (11.01.2008 в 13:39)
 

Серверы на PHP не пишут. Скрипт - сценарий. Выполнил и оставился. Демоны нужно писать на компилируемых языках программирования.

   
 
 автор: mihdan   (11.01.2008 в 15:59)   письмо автору
 
   для: Unkind   (11.01.2008 в 14:47)
 

Unkind, я конечно с вами согласен, но глупцы все ж есть причем пишут такие серверы что просто ... нет слов

   
 
 автор: raadmin   (14.01.2008 в 12:43)   письмо автору
 
   для: mihdan   (11.01.2008 в 15:59)
 

Ну так, чтобы глупцов было таких меньше, может укажите верную дорогу? Сейчас я как раз выбираю инструмент для решения моей задачи. Я хорошо знаю PHP. Но если PHP для этого не подходит, не проблема будет написать сервер и на другом языке. Вопрос - с чего начать?

   
 
 автор: raadmin   (14.01.2008 в 12:41)   письмо автору
 
   для: Unkind   (11.01.2008 в 14:47)
 

Господа. Ну подскажите Вы человеку, не знаю с чего начать. Можно по-подробнее. Какие языки для этой задачи подходят (я знаю Delphy)? Что мне нужно, чтобы организовать такой сервер, подойдет ли для этих целей обычная площадка (хостинг) на которой мой сайт расположен или нет? И на PHP все же есть функции работы с сокетами, у меня даже вот пример есть, только я не понимаю, что с этим кодом сделать надо, как его запустить, откуда, когда?!

Пример 1. Socket example: Simple TCP/IP server

#!/usr/local/bin/php -q
<?php
error_reporting
(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

/* Turn on implicit output flushing so we see what we're getting
* as it comes in. */
ob_implicit_flush();

$address '192.168.1.53';
$port 10000;

if ((
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
    echo 
"socket_create() failed: reason: " socket_strerror($sock) . "\n";
}

if ((
$ret socket_bind($sock$address$port)) < 0) {
    echo 
"socket_bind() failed: reason: " socket_strerror($ret) . "\n";
}

if ((
$ret socket_listen($sock5)) < 0) {
    echo 
"socket_listen() failed: reason: " socket_strerror($ret) . "\n";
}

do {
    if ((
$msgsock socket_accept($sock)) < 0) {
        echo 
"socket_accept() failed: reason: " socket_strerror($msgsock) . "\n";
        break;
    }
    
/* Send instructions. */
    
$msg "\nWelcome to the PHP Test Server. \n" .
        
"To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
    
socket_write($msgsock$msgstrlen($msg));

    do {
        if (
false === ($buf socket_read($msgsock2048PHP_NORMAL_READ))) {
            echo 
"socket_read() failed: reason: " socket_strerror($ret) . "\n";
            break 
2;
        }
        if (!
$buf trim($buf)) {
            continue;
        }
        if (
$buf == 'quit') {
            break;
        }
        if (
$buf == 'shutdown') {
            
socket_close($msgsock);
            break 
2;
        }
        
$talkback "PHP: You said '$buf'.\n";
        
socket_write($msgsock$talkbackstrlen($talkback));
        echo 
"$buf\n";
    } while (
true);
    
socket_close($msgsock);
} while (
true);

socket_close($sock);
?> 


Если все же PHP не подходит, я готов изучить тот язык, который подойдет для решения этой задачи. Но на данный момент я даже не знаю, в какую сторону копать. Я понимаю, что, вероятно, разговор выходит за рамки форума, но посоветуйте тогда куда мне с этим вопросом обратиться.

   
 
 автор: Sobachka   (14.01.2008 в 15:32)   письмо автору
 
   для: raadmin   (14.01.2008 в 12:41)
 

Вам же сказали компилируемый язык... хостинг вам не подойдёт...минимум вдс...

   
 
 автор: raadmin   (15.01.2008 в 11:36)   письмо автору
 
   для: Sobachka   (14.01.2008 в 15:32)
 

вдс? Всё для сварки? Внедорожный самосвал? :)
Или все-таки выделенный сервер? :)
А виртуальный подойдет?

То есть я покупаю выделенный сервер, пишу программу на Delphy (так как я Delphy знаю хорошо), которая создает сокет и слушает его и просто запускаю ее на этом сервере. Так?

Мне тут пришла идея. А могу я использовать для таких целей свой домашний компьютер, который постоянно подключен к Internet и имеет статический IP?

   
 
 автор: Faraon   (14.01.2008 в 21:12)   письмо автору
 
   для: raadmin   (28.12.2007 в 14:40)
 

А как эти данные передаются?

   
 
 автор: raadmin   (15.01.2008 в 11:38)   письмо автору
 
   для: Faraon   (14.01.2008 в 21:12)
 

По GPRS, протокол UDP.

   
 
 автор: Sobachka   (17.01.2008 в 01:43)   письмо автору
 
   для: raadmin   (15.01.2008 в 11:38)
 

http://ru.wikipedia.org/wiki/VDS

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования