Serversocket

  • Автор темы Alien193
  • Дата начала
A

Alien193

В C++ Builder обязательно создавать форму для ServerSocket ?
Можно как-то без создания формы указать порт и Activate сменить на true?
 
V

vital

Можно. Создавайте совй компонент длинамически, в рантайм.
 
V

vital

Код:
==========
var
s:TSERVERSOCKET;
===============
s:=tserversocket.create; 
s.port=port;
s.host=host;
ну и т.д, все как всегда, далее..
 
A

Alien193

может быть вы что-то путаете? у C++ Builder синтаксис не такой
[C++ Ошибка] test.cpp(126): E2451 Undefined symbol 'var'
[C++ Ошибка] test.cpp(126): E2379 Statement missing ;
[C++ Ошибка] test.cpp(128): E2188 Expression syntax
[C++ Ошибка] test.cpp(129): E2451 Undefined symbol 's'
[C++ Ошибка] test.cpp(129): E2451 Undefined symbol 'port'
[C++ Ошибка] test.cpp(130): E2451 Undefined symbol 'host'
 
V

vital

C++ Builder синтаксис не такой
Верно. А раз вы это заметили ТО НАФИГА КОПИПАСТИТЬ? Я привел пример на дельфях, ибо так мне привычнее(Я билдер видел 1 раз в жизни, не пользую я его и вам не советую). На Билдере тоже самое, синтаксисе только его пишите.. пфф...
 
A

Alien193

хорошо, тогда что значит это?
[C++ Ошибка] test.cpp(126): E2285 Could not find a match for 'TServerSocket::TServerSocket()'
 
V

vital

в USES(или как оно там в билдере) Добавили модуль с сокетом?
 
A

Alien193

Разобрался.
А почему если ClientSocket параметры указать в ручную т.е. например Address = "127.0.0.1" работает, а если брать из переменной, т.е. Address = ip, тогда не работает?
 
V

vital

Значит в вашей переменной что-то не то. И что значит не работает? Не компилирует или не коннектит?
 
A

Alien193

не коннектит, выдает ошибку Asynchronous socket error 10061.
 
V

vital

Это значит, либо у вас не верный ип куда коннектитесь, либо воюйте с тамошним админом и его любимым фаерволлом.

Добавлено:
Socket error 10060 - Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
 
A

Alien193

у меня так идет
Код:
						int port = (int) Var[1];
TClientSocket * csock;
csock = new TClientSocket(NULL);
csock->Address=Var[0];
csock->Port=port;
csock->Active=true;
Под Var[0] у меня адрес, под Var[1] у меня порт
может я не правильно перевел перевел порт из char* в int
 
A

Alien193

вот, заметил что проблема в порту, если его изначально указать
Код:
csock->Port=123;
тогда работает, а если из переменной, то не работает :fuckyou:
 
A

Alien193

для значения port требуется тип integer, моя переменная передается в константе char*. Если вставить тупо прямо переменную Var[1] то выдаст ошибку, что не переведена 'char*' to 'int'
Я перевел из char* в int, возможно не правильно...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!