conectare prin tcp/ip la un server cu propriul protocol
Last Updated: Sep 06 2008 15:09, Started by
alin19
, Sep 05 2008 12:14
·
0
#19
Posted 05 September 2008 - 17:16
Codul nu ne foloseste la nimic daca nu ne dai si output-ul sa vedem unde se opreste.
Si n-ar fi rau sa faci un echo "1", echo "2" etc din cand in cand sa vedem la care dintre citiri/scrieri nu mai merge. Plus ca n-ai zis nimic de protocol. Probabil ca doar tu stii ce si cum ar trebui sa trimiti. Edited by urban, 05 September 2008 - 17:18. |
#20
Posted 05 September 2008 - 17:20
urban, on Sep 5 2008, 18:16, said: Codul nu ne foloseste la nimic daca nu ne dai si output-ul sa vedem unde se opreste. Si n-ar fi rau sa faci un echo "1", echo "2" etc din cand in cand sa vedem la care dintre citiri/scrieri nu mai merge. Plus ca n-ai zis nimic de protocol. Probabil ca doar tu stii ce si cum ar trebui sa trimiti. Connected ♣User: sa facut trimiterea de user serverul ramane in asteptare de user trimis, oare trebuie sa ii dau si un mesaj ca sa sfarsit stringul trimis? (echivalentul lui enter) ? Edited by alin19, 05 September 2008 - 17:20. |
#21
Posted 05 September 2008 - 17:27
Da, scrie "\n" pe socket (nu '\n' ca in java). In PHP avem stringuri simple (literals) cuprinse intre apostrofuri si stringuri interpretate, intre ghilimele. Nu exista caractere ca si tip de date.
|
#22
Posted 05 September 2008 - 17:43
OriginalCopy, on Sep 5 2008, 18:27, said: Da, scrie "\n" pe socket (nu '\n' ca in java). In PHP avem stringuri simple (literals) cuprinse intre apostrofuri si stringuri interpretate, intre ghilimele. Nu exista caractere ca si tip de date. vad ca si cel care a creat situl a avut probleme cu asta, mai incerc maine ca tot nu am reusit multumesc pentru ajutor If you connect to a Server in a way like you do with telnet or some similar protokoll you may have problems with sending data to the server. I found out that at some servers there is a different between: <?php socket_write ($my_socket, $line, strlen ($line)); socket_write ($my_socket, "\r\n", strlen ("\r\n")); ?> witch worked at least, and <?php socket_write ($my_socket, $line."\r\n", strlen ($line."\r\n")); ?> wich made the server stop sending any data. I hope this helps to save a lot of time. I needed about two days to find out, that this was the problem |
#23
Posted 05 September 2008 - 17:49
Ce astepta serverul tau sa primeasca? carriage return (\r), new line (\n) sau ambele (\r\n)? sau depinde de sistemul de operare pe care ruleaza serverul?
Si n-ar fi rau sa verifici ce primesti inainte sa trimiti username/password. Adica trimiti username doar daca stringul primit este "User:". La fel si la password. |
#24
Posted 06 September 2008 - 11:22
urban, on Sep 5 2008, 18:49, said: Ce astepta serverul tau sa primeasca? carriage return (\r), new line (\n) sau ambele (\r\n)? sau depinde de sistemul de operare pe care ruleaza serverul? Si n-ar fi rau sa verifici ce primesti inainte sa trimiti username/password. Adica trimiti username doar daca stringul primit este "User:". La fel si la password. am revenit cu aceiasi problema daca mai este cineva care are si alte idei? deci sunt sigur ca serverul asteapta user name, pentru ca am trimis un sir f mare de caractere si imi zice bad username; problema este cum il fac sa inteleaga ca vreau sa treaca la linie noua. |
#25
Posted 06 September 2008 - 12:25
Citeste http://en.wikipedia.org/wiki/CRLF . Noi nu avem de unde sa stim ce asteapta serverul tau scris in java. Cel mai bine te duci pe aria java cu codul serverului si intrebi pe cineva ce vrea acel server ca "terminator" de comanda: CR sau LF? Odata cu acel server ai creat si un protocol (asa cum e HTTP), noi nu avem de unde sa stim ce ai creat tu (ai creat fara sa stii ca creezi ceva, de aici confuzia ta fata de propriul cod). Defapt, sper spre binele tau ca ai creat un protocol: http://en.wikipedia....col_(computing)
Acum cred ca inteleg de unde vine mitul asta cum ca programatorii java nu ar avea habar de nimic... (PS: da, da, exceptii, stim asta ) Edited by OriginalCopy, 06 September 2008 - 12:36. |
#26
Posted 06 September 2008 - 12:43
OriginalCopy, on Sep 6 2008, 13:25, said: Citeste http://en.wikipedia.org/wiki/CRLF . Noi nu avem de unde sa stim ce asteapta serverul tau scris in java. Cel mai bine te duci pe aria java cu codul serverului si intrebi pe cineva ce vrea acel server ca "terminator" de comanda: CR sau LF? Odata cu acel server ai creat si un protocol (asa cum e HTTP), noi nu avem de unde sa stim ce ai creat tu (ai creat fara sa stii ca creezi ceva, de aici confuzia ta fata de propriul cod). Defapt, sper spre binele tau ca ai creat un protocol: http://en.wikipedia....col_(computing) Acum cred ca inteleg de unde vine mitul asta cum ca programatorii java nu ar avea habar de nimic... (PS: da, da, exceptii, stim asta ) serverul nu este scris de mine, daca era scris de mine il modificam si nu mai aveam atatea probleme. |
#27
Posted 06 September 2008 - 12:45
atunci ... citeste-i documentatia, intreaba pe cine l-a creat, sau ... pur si simplu incearca. Cele mai comune terminatoare de linii (daca asta asteapta el), sunt "\n", "\r\n" sau "\r"
|
#28
Posted 06 September 2008 - 15:09
@OriginalCopy
Nu vrei sa corectezi titlul ca arata foarte aiurea .. plus ca in cazul in care da cineva search dupa "socket connection" nu prea va gasi ce trebuie. Edited by urban, 06 September 2008 - 15:10. |
|
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users