Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

проблема с сокетами   Найти похожие ветки 

 
Boooze   (2008-08-27 23:17) [0]

В общем написал клиен и сервер(чат),переписал точнее с какой то статьи,запускаю сервер ,запускаю клиент ,вбиваю айпи ,порт,нажимаю коннект ,а мне сообщение об ошибке типа:
"" not avaible value.


 
Slym ©   (2008-08-28 04:46) [1]

Boooze   (27.08.08 23:17)
переписал

плохо переписал...
Вот я делаю все как сосед (у него сын), а у меня дочь где я акарал?


 
Boooze   (2008-08-28 13:47) [2]

Да все нрмально переписал ,просто вот писал сам была какая то ошибка ,попробывал ,мб когда сокеты устанавливал что нибудь не так делал?(хотя че там можно не так сдеать?)решил просто пооверить рабюотают ли у меня сокеты вообще вот переписал со  статьи что бы убедиться ,а вот тут не с сокетами а вообще какая то херня ,про переменную какаую то чилового типа .БЛин мб ,кто нибудь знает откуда эта ошибка?


 
Slym ©   (2008-08-28 14:03) [3]

Boooze   (28.08.08 13:47) [2]
переписал со  статьи

что за статья, ссылку давай или код "своего" чата... ато телепатор даже на максимальной мощьности не принимает...
Boooze   (28.08.08 13:47) [2]
кто нибудь знает откуда эта ошибка?

думаю при столь скудных исходных данных - никто


 
Сергей М. ©   (2008-08-28 14:57) [4]


> пооверить рабюотают ли у меня сокеты вообще вот переписал
> со  статьи что бы убедиться


Если речь идет о TServerSocket/TClientSocket или TTCPServer/TTCPClient, то ты проделал мартышкин труд, переписывая чего-то там с какой-то там статьи - для проверки можно было воспользоваться готовым демо-проектом chat.dpr или netchat.dpr, лежащим прямо перед носом, в папке ($DELPHI\DEMOS\INTERNET)


 
Boooze   (2008-08-28 16:52) [5]

сервер:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ServerSocket1.Port    := 777;  {Указываем порт, который будет слушать сервер}
  ServerSocket1.Active  := True; {Активизируем сервер}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ServerSocket1.Active := False; {Выключаем сервер}
 ServerSocket1.Close; {Закрываем соединение}
 Close; {Завершаем программу}
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
var
 S: String;
 I: Integer;
begin
 {Добавляем к строке сообщения клиента идентификатор его сокета}
 S := InTtoStr(Socket.SocketHandle) + ">" + Socket.ReceiveText;
 ListBox1.Items.Add(S); {Добавляем сообщение в список}
 {Перебираем все установленные соединения}
 For i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
    {Проверяем - если идентификатор очередного сокета не совпадает
     с идентификатором сокета, приславшего сообщение, то...}
    if ServerSocket1.Socket.Connections[i].SocketHandle <> Socket.SocketHandle then
      {... посылаем очередной клиентской программе новое сообщение}
      ServerSocket1.Socket.Connections[i].SendText(S);
end;

клиент:
procedure TForm1.Button1Click(Sender: TObject);
{
 Подключение к серверу
}
begin
ClientSocket1.Address := Edit2.Text; {Адрес сервера}
ClientSocket1.Port := StrToInt(Edit3.text); {Порт сервера}
{Если ClientSocket1 не включен, то...}
if not ClientSocket1.Active then  
  ClientSocket1.Active := True; {..включаем его}
end;

procedure TForm1.FormDestroy(Sender: TObject);
{
 Закрытие программы
}
begin
 ClientSocket1.Active := False; {Выключаем клиента}
 ClientSocket1.Close; {Закрываем сокет}
 Close; {Закрываем программу}
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
{
 Обработка данных от сервера
}
begin
 {Добавляем новое сообщение от сервера в список}
 Listbox1.Items.Add(Socket.ReceiveText);
end;

procedure TForm1.Button2Click(Sender: TObject);
{
 Послать сообщение
}
begin
 {Если сообщение не пусто, то...}
 If Edit1.Text <> "" then
   ClientSocket1.Socket.SendText(Edit1.text); {..посылаем его на сервер}
 Edit1.Text := ""; {Очищаем поле ввода}
end;

а насчет проверить через стандартные ,не получиться ,так как делфи у мну "урезанная".


 
Boooze   (2008-08-29 00:03) [6]

БЛин в стандартых примерах есть только нетчат,только как я понял там в нем сразуи клиент и сервер,и как мне показалось это для локальной сети?
Ну а что с моим примером?


 
Slym ©   (2008-08-29 08:58) [7]

Boooze   (28.08.08 16:52) [5]
содрано 1 в 1 - работает :)


 
Сергей М. ©   (2008-08-29 09:00) [8]


> Boooze   (29.08.08 00:03) [6]



> как мне показалось это для локальной сети?


Неважно для какой.


> Boooze   (28.08.08 16:52) [5]


Что находится в Edit2.Text и Edit3.Text на момент нажания Button1 ?
Какой IP-адрес у хоста-сервера и хоста-клиента ?


 
Boooze   (2008-08-29 12:00) [9]


> Что находится в Edit2.Text и Edit3.Text на момент нажания
> Button1 ?
> Какой IP-адрес у хоста-сервера и хоста-клиента ?

в edit1 айпишник ,в edit2 порт ,в edit 3 должно быть сообщение ,которое я могу отправить с помощью другой кнопки (блин а мб потому что я его не заполнил поэтому и ошибка?)
Сначало я пробывал в локальной сети ,то есть сервер 192.168.0.1 ,а клиент 85.234.44.75...НА каком то форуме мне посоваетовалит что лучше сначало проверитть на одном компе.


 
Boooze   (2008-08-29 12:03) [10]

Да ,трабл бюыл в том что я не заполнял поле во время подключение ...Но теперь во время подключение пишеть ошибку с сокетами там :Asynchronous socket error и цифры.


 
Slym ©   (2008-08-29 12:48) [11]

Boooze   (29.08.08 12:03) [10]
и цифры

а вот в цифре весь смак... какая цифра то?


 
Slym ©   (2008-08-29 12:50) [12]

Boooze   (29.08.08 12:00) [9]
то есть сервер 192.168.0.1 ,а клиент 85.234.44.75

ха-ха :) пацталом
сервер не виден для клиента, он не виден ни для кого кроме локальной сети

вот если наоборот: сервер 85.234.44.75 ,а клиент 192.168.0.1
может и проканает


 
Сергей М. ©   (2008-08-29 13:39) [13]


> трабл бюыл в том что я не заполнял поле во время подключение


Какое поле-то ?


 
Boooze   (2008-08-29 22:40) [14]

поле с сообщение !!!только не понятно пчему???если я полее не заполняю то он думает что сообщение не пустое а содержит "" ,и так как это не цифра выдает ошибку..попробую как сказал слим.э.насчте цифр 10061 ,вот эти цифры пишет


 
Boooze   (2008-08-30 07:40) [15]

поменял местами сервер и клиент ,не прокатило...пишет ошибку с сокетами asynchronous socket error 10061.


 
Сергей М. ©   (2008-08-30 17:51) [16]


> Boooze   (29.08.08 22:40) [14]
>
> поле с сообщение


Ну ты и фрукт, однако)

Какое нафих поле с каким нафих сообщением, если про него, т.е. про сообщение, речь пойдет лишь после успешного коннекта  ?

Ты же сам сказал, что "нажимаю коннект ,а мне сообщение об ошибке" !

А отправка сообщения у тебя происходит при нажатии совсем другой "нажималки", не имеющей отношения к коннекту)


 
Boooze   (2008-08-30 22:24) [17]

Да не))я фрукт тот еще конечно,но...Я пишу айпи,порт.Жму кнопку на которую должен происходить коннект.Но почему то если в поле сообщения не напишешь какие нибудь цифры,будет ошибка!!!сам хз пчему)ну допустим я ввел цифры,далее жму не отправить сообщение,а приконнектиться,то есть все правельно..но пишет ошибку с сокетамии цмфры 10061!!


 
Сергей М. ©   (2008-08-30 22:33) [18]

см. [1] - сдирать чужой проект нужно "один в один", если уж приспичило поглазеть как он работает .. А не нести при этом отсебячину ..


 
Boooze   (2008-08-31 16:19) [19]

Все написано 1 в 1 ,скопировал исходник не из той стаьи а ,точто переписал в делфи,+чувак выше написал что у него работает!
Что то по делу мало ченго написали !ни кто не че не помогя уже какой раз втираю что ошибка с сокетами и пишет цифры 10061 !!


 
Сергей М. ©   (2008-09-01 08:10) [20]

10061 - хост сервера не доступен


 
Slym ©   (2008-09-01 11:42) [21]

ты на одном компе запусти... адрес 127.0.0.1
10061 - компы друг друга не видят:
1. сервер-192.168.0.1 невиден для клиента-85.234.44.75 т.к. сервер находится в "серой" зоне читай http://yandex.ru/yandsearch?rpt=rad&text=%F1%E5%F0%FB%E9+IP+%E0%E4%F0%E5%F1 или http://www.mednikov.ru/7
2. сервер-85.234.44.75 невиден для клиента-192.168.0.1 т.к. сервер может быть прикрыт файрволом :)


 
Сергей М. ©   (2008-09-01 11:51) [22]


> Slym ©   (01.09.08 11:42) [21]


Теперь ты стал чуваком ниже)


> Boooze
> решил просто пооверить рабюотают ли у меня сокеты вообще


Если ты получил такую ошибку, то можешь успокоиться  - сокеты у тебя, "чувак", 100%-но работают)


 
Boooze   (2008-09-01 16:58) [23]

робывал запускать на одном компе как говорил слим,та же ошибка ))На самом деле мне ужзе по барабану че это за ошшибка меня это заколебло)))
Спасибо хоть на этом))я в Тибет руки выпреМЛЯТЬ


 
Сергей М. ©   (2008-09-01 17:21) [24]


> я в Тибет руки выпреМЛЯТЬ


Тебе бы голову подтесать, не то что "руки выпреМЛЯТЬ".


 
Slym ©   (2008-09-02 04:53) [25]

Сергей М. ©   (01.09.08 11:51) [22]
Теперь ты стал чуваком ниже

Зато остальное становится все длиннее :)
Boooze   (01.09.08 16:58) [23]
запускать на одном компе как говорил слим

Дану... а я никаких ошибок не увидел...
Boooze   (01.09.08 16:58) [23]
Тибет руки выпреМЛЯТЬ

Там не руки выпремляют, а карму... руки кувалда выпремляет когда ею интенсивно махать



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.07 c
2-1270543077
Александр Чернявский
2010-04-06 12:37
2010.08.27
Вопрос к компоненте TImage


15-1272391343
GanibalLector
2010-04-27 22:02
2010.08.27
Обрыв сетевого подключения. Как?


15-1265186248
Mike Kouzmine
2010-02-03 11:37
2010.08.27
Глобальное Затемнение


2-1272814938
TechnoDreamer
2010-05-02 19:42
2010.08.27
Контейнер


15-1267352341
виола
2010-02-28 13:19
2010.08.27
Задача





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский