-
В общем написал клиен и сервер(чат),переписал точнее с какой то статьи,запускаю сервер ,запускаю клиент ,вбиваю айпи ,порт,нажимаю коннект ,а мне сообщение об ошибке типа:
'' not avaible value.
-
Boooze (27.08.08 23:17)
переписал
плохо переписал...
Вот я делаю все как сосед (у него сын), а у меня дочь где я акарал?
-
Да все нрмально переписал ,просто вот писал сам была какая то ошибка ,попробывал ,мб когда сокеты устанавливал что нибудь не так делал?(хотя че там можно не так сдеать?)решил просто пооверить рабюотают ли у меня сокеты вообще вот переписал со статьи что бы убедиться ,а вот тут не с сокетами а вообще какая то херня ,про переменную какаую то чилового типа .БЛин мб ,кто нибудь знает откуда эта ошибка?
-
Boooze (28.08.08 13:47) [2]
переписал со статьи
что за статья, ссылку давай или код "своего" чата... ато телепатор даже на максимальной мощьности не принимает...
Boooze (28.08.08 13:47) [2]
кто нибудь знает откуда эта ошибка?
думаю при столь скудных исходных данных - никто
-
> пооверить рабюотают ли у меня сокеты вообще вот переписал
> со статьи что бы убедиться
Если речь идет о TServerSocket/TClientSocket или TTCPServer/TTCPClient, то ты проделал мартышкин труд, переписывая чего-то там с какой-то там статьи - для проверки можно было воспользоваться готовым демо-проектом chat.dpr или netchat.dpr, лежащим прямо перед носом, в папке ($DELPHI\DEMOS\INTERNET)
-
сервер:
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);
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 (28.08.08 16:52) [5]
содрано 1 в 1 - работает :)
-
> Boooze (29.08.08 00:03) [6]
> как мне показалось это для локальной сети?
Неважно для какой.
> Boooze (28.08.08 16:52) [5]
Что находится в Edit2.Text и Edit3.Text на момент нажания Button1 ?
Какой IP-адрес у хоста-сервера и хоста-клиента ?
-
> Что находится в Edit2.Text и Edit3.Text на момент нажания
> Button1 ?
> Какой IP-адрес у хоста-сервера и хоста-клиента ?
в edit1 айпишник ,в edit2 порт ,в edit 3 должно быть сообщение ,которое я могу отправить с помощью другой кнопки (блин а мб потому что я его не заполнил поэтому и ошибка?)
Сначало я пробывал в локальной сети ,то есть сервер 192.168.0.1 ,а клиент 85.234.44.75...НА каком то форуме мне посоваетовалит что лучше сначало проверитть на одном компе.
-
Да ,трабл бюыл в том что я не заполнял поле во время подключение ...Но теперь во время подключение пишеть ошибку с сокетами там :Asynchronous socket error и цифры.
-
Boooze (29.08.08 12:03) [10]
и цифры
а вот в цифре весь смак... какая цифра то?
-
Boooze (29.08.08 12:00) [9]
то есть сервер 192.168.0.1 ,а клиент 85.234.44.75
ха-ха :) пацталом
сервер не виден для клиента, он не виден ни для кого кроме локальной сети
вот если наоборот: сервер 85.234.44.75 ,а клиент 192.168.0.1
может и проканает
-
> трабл бюыл в том что я не заполнял поле во время подключение
Какое поле-то ?
-
поле с сообщение !!!только не понятно пчему???если я полее не заполняю то он думает что сообщение не пустое а содержит '' ,и так как это не цифра выдает ошибку..попробую как сказал слим.э.насчте цифр 10061 ,вот эти цифры пишет
-
поменял местами сервер и клиент ,не прокатило...пишет ошибку с сокетами asynchronous socket error 10061.
-
> Boooze (29.08.08 22:40) [14]
>
> поле с сообщение
Ну ты и фрукт, однако)
Какое нафих поле с каким нафих сообщением, если про него, т.е. про сообщение, речь пойдет лишь после успешного коннекта ?
Ты же сам сказал, что "нажимаю коннект ,а мне сообщение об ошибке" !
А отправка сообщения у тебя происходит при нажатии совсем другой "нажималки", не имеющей отношения к коннекту)
-
Да не))я фрукт тот еще конечно,но...Я пишу айпи,порт.Жму кнопку на которую должен происходить коннект.Но почему то если в поле сообщения не напишешь какие нибудь цифры,будет ошибка!!!сам хз пчему)ну допустим я ввел цифры,далее жму не отправить сообщение,а приконнектиться,то есть все правельно..но пишет ошибку с сокетамии цмфры 10061!!
-
см. [1] - сдирать чужой проект нужно "один в один", если уж приспичило поглазеть как он работает .. А не нести при этом отсебячину ..
-
Все написано 1 в 1 ,скопировал исходник не из той стаьи а ,точто переписал в делфи,+чувак выше написал что у него работает!
Что то по делу мало ченго написали !ни кто не че не помогя уже какой раз втираю что ошибка с сокетами и пишет цифры 10061 !!
-
10061 - хост сервера не доступен
-
-
> Slym © (01.09.08 11:42) [21]
Теперь ты стал чуваком ниже)
> Boooze
> решил просто пооверить рабюотают ли у меня сокеты вообще
Если ты получил такую ошибку, то можешь успокоиться - сокеты у тебя, "чувак", 100%-но работают)
-
робывал запускать на одном компе как говорил слим,та же ошибка ))На самом деле мне ужзе по барабану че это за ошшибка меня это заколебло)))
Спасибо хоть на этом))я в Тибет руки выпреМЛЯТЬ
-
> я в Тибет руки выпреМЛЯТЬ
Тебе бы голову подтесать, не то что "руки выпреМЛЯТЬ".
-
Сергей М. © (01.09.08 11:51) [22]
Теперь ты стал чуваком ниже
Зато остальное становится все длиннее :)
Boooze (01.09.08 16:58) [23]
запускать на одном компе как говорил слим
Дану... а я никаких ошибок не увидел...
Boooze (01.09.08 16:58) [23]
Тибет руки выпреМЛЯТЬ
Там не руки выпремляют, а карму... руки кувалда выпремляет когда ею интенсивно махать