Serversocket

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

Alien193

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

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#2
Можно. Создавайте совй компонент длинамически, в рантайм.
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#4
Код:
==========
var
s:TSERVERSOCKET;
===============
s:=tserversocket.create; 
s.port=port;
s.host=host;
ну и т.д, все как всегда, далее..
 
A

Alien193

Гость
#5
может быть вы что-то путаете? у 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'
 

vital

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

Alien193

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

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#8
в USES(или как оно там в билдере) Добавили модуль с сокетом?
 
A

Alien193

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

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#10
Значит в вашей переменной что-то не то. И что значит не работает? Не компилирует или не коннектит?
 
A

Alien193

Гость
#11
не коннектит, выдает ошибку Asynchronous socket error 10061.
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#12
Это значит, либо у вас не верный ип куда коннектитесь, либо воюйте с тамошним админом и его любимым фаерволлом.

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

Alien193

Гость
#13
у меня так идет
Код:
						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

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

Alien193

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