[ Nemanja Avramović @ 12.12.2004. 09:23 ] @
| Ljudi, ja sam sad poceo da se bavim ovim. Znaci nista "external" components, samo preko TClientSocket-a, i sve super radi kada kuci podignem IRC server (ignitionServer) i stavim
ClientSocket1.Host:='localhost';
Ali kada odem online i stavim:
ClientSocket1.Host:='irc.serbiancafe.ws';
Izbacuje mi greske:
"Asynchronous socket error 10049" - (prva), a ostale
"Asynchronous socket error 10038"
Sta nije u redu? |
[ morlic @ 12.12.2004. 11:31 ] @
Evo sta kaze MS o tim greskama:
Citat:
WSAEADDRNOTAVAIL
10049
Cannot assign requested address.
The requested address is not valid in its context. This normally results from an attempt to bind to an address that is not valid for the local computer. This can also result from connect, sendto, WSAConnect, WSAJoinLeaf, or WSASendTo when the remote address or port is not valid for a remote computer (for example, address or port 0).
WSAENOTSOCK
10038
Socket operation on nonsocket.
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
Prekontrolisi adresu, tj. da li je dovoljno sto si stavio 'irc.serbiancafe.ws'
[ Nemanja Avramović @ 12.12.2004. 11:49 ] @
u kom smislu da li je dovoljno? sta jos moze da se stavi?
[ bancika @ 12.12.2004. 12:37 ] @
a jesi postavio port?
[ Srki_82 @ 12.12.2004. 13:58 ] @
Koliko mi se cini izgleda da je bas port upitanju. Postavi port na 6667, na taj port odgovaraju svi irc serveri.
[ CyberB @ 12.12.2004. 16:14 ] @
Hteo bih samo da ti toplo preporucim koriscenje API-ja. Ja licno ne podnosim delphi komponente, a posebno me nerviraju te za networking ;)) To isto mozes veoma lako da uradis preko API-ja.
1. U "uses" dodaj WinSock;
2. U npr. Form1.OnCreate stavish sledece:
var
WSA: WSAData;
begin
WSAStartup($202, WSA);
end;
3. Pa onda negde u programu (za probu moze na Button.OnClick)
var
s: TSocket;
a: sockaddr_in;
r, primljeno_bajtova: integer;
buf: array[1..1024] of char;
begin
s := socket(AF_INET, SOCK_STREAM, 0);
a.sin_family = AF_INET;
a.sin_port := htons(6667); // ovde stavish port koji ti treba
a.sin_addr.s_addr := inet_addr("127.0.0.1"); // ovde stavish ip addresu
r := connect(s, a, sizeof(sockaddr_in));
if r=SOCKET_ERROR then
begin
ShowMessage('Greska pri konekciji!');
exit;
end;
// sa sledecom komandom primash podatke u array buf
primljeno_bajtova := recv(s, buf, sizeof(buf), 0);
// a sa ovom komandom saljes podatke koji se nalaze u array-u buf
send(s, buf, sizeof(buf), 0);
end;
Ako ti nesto nije jasno pitaj.
Mala napomena: Ovo je najprostiji moguci primer i socketi su u "blocking" modu.
Sto znaci da ce ti se program "zalediti" kad bude doshao do npr. recv i bice zakocen
sve dok ne stignu neki podatci.
Ako te ovo interesuje pitaj, pa cu da ti objasnim kako da koristis WSASelect.
[ Nemanja Avramović @ 12.12.2004. 16:19 ] @
jesam stavio port, naravno
probacu i ovaj api :)
[ Nemanja Avramović @ 12.12.2004. 19:12 ] @
aaaaaaaaaaaaaaaaaaaapi smara
dajte jos predloga
[ bancika @ 12.12.2004. 20:39 ] @
imas Indy IRC komponentu sa odradjenim stvarima
[ Nemanja Avramović @ 12.12.2004. 21:34 ] @
U delphi-ju 6? Nisam video........
anyway....... videcu, sad mi je kasno, idem sutra rano inna school
[ CyberB @ 12.12.2004. 23:02 ] @
Citat: JaHvram: aaaaaaaaaaaaaaaaaaaapi smara
dajte jos predloga
kome sam ja pokushao da pomognem... ccc ;)
nikad od tebe nece biti programer sinko.
[ shaDy @ 13.12.2004. 01:58 ] @
Neki bi sve na tacnu...
a onda su jos i nezahvalni...
uzas...
Iznerviro sam se do bola...
Covek ti napise i perimer... i ti mu onda tako vratis...
Kad malo porastes mozda ti neke stvari budu jasnije...
[ Srki_82 @ 13.12.2004. 07:30 ] @
Pa, dobro. Samo je rekao sta misli... uvek je bolje da ti neko baci istinu u lice nego da je zamotava u slatke lazi :P Ni meni se ne svidja cist API... jos uvek mi je lakse da sve radim preko Indy komponenti.
[ shaDy @ 13.12.2004. 08:00 ] @
Pa jeste u pravu si u neku ruku.... mozda sam ga i ja malo pretero
ali mi je zvucalo nekako totalno nezahvalno prema onom coveku. Treba da bude zahvalan sto je covek odvojio vreme da mu pomogne pa makar njemu taj pristup i neodgovaro... (vreme i dobra organizacija je ljkuc ka uspehu)
Ali ovde se ne radi o nekoj istini, nego o pristupu resavanja problema.
Tebi je lakse da radis sa Indy-jem ( da priznam i meni je lakse da koristim gotovu komponentu) ali neko opet hoce da radi sa API.jem sto nemozes reci da je lose ili losije od ovog prvog.. Svako ima svoj izbor...
pozdrav svima
[ shaDy @ 13.12.2004. 08:05 ] @
BTW..
kolko se secam IRC indy komponenta je bila i u sestici... Molim vas ispravite me ako gresim...
Velika greska ljudi je sto ih mrzi da se iole upoznaju sa alatima koji im stoje na raspolaganju... Svi bi preko noci da napisu Windows.
Necu vise o ovome, skreno sam s teme...
Sto se tice IRC.a, pored ove INDY komponente, imas jos IRC komponenti koje mozes naci na www.torry.net
Ja sam koristio neku ranije, i mislim da mi je radila bez greske...
pozdrav
[ Nemanja Avramović @ 13.12.2004. 12:20 ] @
ja sam probao API i video da smaaaara... nisam ga tek tako odbacio
a za Indy... videcu kasnije, prvo mali odmor from da school
[ Srki_82 @ 13.12.2004. 16:20 ] @
Svaku pomoc treba ceniti... cak i ako bas i ne ispuni tvoja ocekivanja JaHvrame.
Indy kontrole imas i u Delphi 6, a ako si ih slucajno obrisao mozes da ih skines ponovo sa http://www.indyproject.org/download/Borland.iwp
[ Nemanja Avramović @ 13.12.2004. 19:05 ] @
Aj' sad cu da pogledam. A da li je iko uopste od vas pokusao (i uspeo) da ode na IRC sa TClientSocket?
[ shaDy @ 13.12.2004. 19:54 ] @
I te komponente su na kraju sve bazirane na Apiju..
ClientSocket ti sluzi za konekciju, mislim da nebi trebalo da bude problema da se konektujes na server.. Ali samo da se konektujes...
Mada mozda cete Server diskonektovat bez nekih dodatnih parametara... Neznam..
Za ostalo moras da pogledas neki IRC RFC ako postoji...
Mislim da sam ranije koristio neku komponentu zvala se MyIrc, bajirc,... tako nesto na 'ajirc'
[ reiser @ 13.12.2004. 20:01 ] @
@JaHvram
Ako hoces daj mail da ti posaljem source jednog IRC bot-a pisanog u Delphi-u.
[ Nemanja Avramović @ 14.12.2004. 15:07 ] @
Marko: avramyu at gmail.com
[ reiser @ 14.12.2004. 17:41 ] @
Poslao
poz
[ Nemanja Avramović @ 15.12.2004. 17:27 ] @
Kod sam samo preleteo okom :) ali problem mi je u tome sto je ceo projekat gotov, sad bi bilo glupo da sve pisem iz pocetka. Dakle, da li je iko uspeo to sa ClientSocket-om?
[ Srki_82 @ 15.12.2004. 17:34 ] @
Pa, posto imas gotov projekat nije tesko da ga portujes da koristi ClientSocket. Skoro sve komponente cak i API koriste slicne funkcije tako da ce portovanje biti zaista lako.
[ Nemanja Avramović @ 16.12.2004. 13:22 ] @
cisto sumnjam, ali videcu....... sad pratim ovaj medijski rat izmedju hr i scg, coding posle :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|