Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica
 Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila
 Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...

Jante noi shitbox

Trinitas TV 4K
 Dacia 1316 cu 6 usi ...

Frecventa modificata radio

Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...
 

conectare prin tcp/ip la un server cu propriul protocol

- - - - -
  • Please log in to reply
27 replies to this topic

#1
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
incerc sa ma conectex si eu la un server cu php, de unde sa iau date xml, cu java merge, da cu php nu stiu exact, am ip-ul  portul userul si parola;

am citit eu ceva pe aici si am gasit 2 posibile modalitati:

socket_connect si hw_ pConnect,

stie cineva cum se face o conexiune catre un server/

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Depinde de tipul de comunicare/autentificare. Prin HTTP, cea mai simpla metoda este file_get_contents(). Nu uita sa citesti despre asta: http://en.wikipedia....wiki/URI_scheme

#3
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View PostOriginalCopy, on Sep 5 2008, 13:24, said:

Depinde de tipul de comunicare/autentificare. Prin HTTP, cea mai simpla metoda este file_get_contents(). Nu uita sa citesti despre asta: http://en.wikipedia....wiki/URI_scheme


hm.. file_get_contents nu este pentru citire fisiere, xml-uri, pagini ?

eu nu reusesc sa ma conectez, nu stiu ce sa folosesc pentru conectare

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
file_get_contents() poate accesa resurse HTTP, ceea ce vrei tu. Daca si autentificarea o faci tot prin HTTP (direct, nu la nivelul aplicatiei; hint: .htpasswd), asa cum e descris in articolulu URI schemes pe wikipedia, atunci poti pur si simplu sa ceri resursa cu aceasta functie. Altfel, folosesti cURL. In semnatura mea e un link catre regulament, de unde poti afla unde poti intreba in calidate de client/angajator, nu in calidate de programator PHP, asa cum vei fi tratat pe aceasta arie.

:cheers:

#5
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View PostOriginalCopy, on Sep 5 2008, 15:10, said:

file_get_contents() poate accesa resurse HTTP, ceea ce vrei tu. Daca si autentificarea o faci tot prin HTTP (direct, nu la nivelul aplicatiei; hint: .htpasswd), asa cum e descris in articolulu URI schemes pe wikipedia, atunci poti pur si simplu sa ceri resursa cu aceasta functie. Altfel, folosesti cURL. In semnatura mea e un link catre regulament, de unde poti afla unde poti intreba in calidate de client/angajator, nu in calidate de programator PHP, asa cum vei fi tratat pe aceasta arie.

:cheers:

din cate am gasit eu pe google si pe forumuri java realizeaza o conexiune TCP,

eu am intrebat in calitate de programator, dar daca vad ca nimeni nu stie(sau nu vrea sa zica)  cum reusesc sa fac si eu o conexiune cu un server, am postat si la sofware la cerere,

nu am primit nici macar un raspuns aici ca pot folosi :hw_Connect sau soket_connect,

vroiam doar sa imi zica cineva apoi sa caut eu, ca asta fac de 4 ore, tot caut cum sa ma conectez, pana la urma cred ca o sa fac cu java incarcarcare intro baza de date si gata daca nu stie nimeni.

Edited by alin19, 05 September 2008 - 15:07.


#6
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
de doua posturi incoace ti se spune sa folosesti file_get_contents() si tu o tii pe a ta daca sa folosesti hw_connect sau socket_connect. Suferi cumva de dislexie?

#7
florindinu

florindinu

    Junior Member

  • Grup: Members
  • Posts: 177
  • Înscris: 22.03.2008
Desi nu cred ca ai nevoie de asta, daca chiar vrei sa realizezi o conexiune TCP atunci poate te ajuta asta: http://www.php.net/m...ook.sockets.php
Daca folosesti socket-uri esti pe cont propriu.. sunt rare situatiile cand o aplicatie implementeaza un protocol custom, si sunt si mai rare situatiile cand folosesti un protocol custom ca sa trimiti XML. In browser poti accesa datele? Inainte sa faci ceva cu socket-uri incearca metoda propusa de OriginalCopy.

#8
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
ca sa va fac sa intelegeti si sa scapati de impresia ca nu incerc ceea ce ziceti voi asta este functia in java care se conecteaza la un serviciu creat local si care trebuie pornit inainte de a functiona

kin = new BufferedReader(new InputStreamReader(System.in));
s = new Socket("127.0.0.1",9191);
dos = new DataOutputStream(s.getOutputStream());
            dis = new DataInputStream(s.getInputStream());
            System.out.print(dis.readUTF());        
            System.out.print(dis.readUTF());        //afiseaza user name
            dos.writeUTF(kin.readLine());dos.flush(); //asteapta introducere user si enter
            System.out.print(dis.readUTF());      //afiseaza password
            dos.writeUTF(kin.readLine());dos.flush(); //asteapta introducere parola si enter
            String z="";
            while (true){                                  
             System.out.print(dis.readUTF());            //afiseaza datale care le primeste de la server
            }
}catch(Exception e){
e.printStackTrace();
        }

pentru florindinu merci pentru ajutor dar alea le stiu pe dearost de cat leam citit, imi refuza conexiunea cand incerc,
pentru urban si originalcopy spunetimi daca pot folosi file_get_content sa fac ce face functia asta

Edited by alin19, 05 September 2008 - 16:20.


#9
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
1. In codul tau nu vad nici un fel de autentificare. Asta apropo de ce ziceai in primul post cu userul si parola.
2. Socket serverul are un protocol custom sau e http?
3. Ai incercat cu file_get_content() si nu ti-a mers? Daca nu ti-a mers ce eroare ti-a dat?
4. ne arati si noua ce iti afiseaza linia System.out.print(dis.readUTF()); din codul de mai sus? contine cumva si headerele HTTP?

#10
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View Posturban, on Sep 5 2008, 17:12, said:

1. In codul tau nu vad nici un fel de autentificare. Asta apropo de ce ziceai in primul post cu userul si parola.
2. Socket serverul are un protocol custom sau e http?
3. Ai incercat cu file_get_content() si nu ti-a mers? Daca nu ti-a mers ce eroare ti-a dat?
4. ne arati si noua ce iti afiseaza linia System.out.print(dis.readUTF()); din codul de mai sus? contine cumva si headerele HTTP?


am modificat mai sus ce face fiecare linie

#11
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postalin19, on Sep 5 2008, 12:14, said:

incerc sa ma conectex si eu la un server cu php, de unde sa iau date xml, cu java merge, da cu php nu stiu exact, am ip-ul  portul userul si parola;
Pai scuza-ma, din moment ce formulezi asa, cine se gandeste ca tu vorbesti despre un server tcp si despre un protocol al tau? Te afli pe o arie de webdev, deci e logic sa asumam faptul ca vorbesti despre HTTP, daca nu mentionezi exact ce faci!

php.net/socket

#12
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007

View PostOriginalCopy, on Sep 5 2008, 17:21, said:

Pai scuza-ma, din moment ce formulezi asa, cine se gandeste ca tu vorbesti despre un server tcp si despre un protocol al tau? Te afli pe o arie de webdev, deci e logic sa asumam faptul ca vorbesti despre HTTP, daca nu mentionezi exact ce faci!

php.net/socket


cu astea ma chinui de cateva ore, da nu se realizeaza deloc conexiunea, de aceea am venit sa va intreb daca este alceva ca nu eram sigur daca cu asta ma pot conecta

:
PHP Warning:  socket_connect(): unable to connect [0]: A non-blocking socket operation could not be completed immediately.
on line 4



<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($sock);
socket_connect($sock,"127.0.0.1", 9191);
socket_set_block($sock);
switch(socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5))
{
        case 2:
                echo "[-] Connection Refused\n";
                break;
        case 1:
                echo "[+] Connected\n";
                break;
        case 0:
                echo "[-] Timeout\n";
                break;
}
?>

#13
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
cred ca am reusit sa ma conectez

am sters asta
socket_set_nonblock($sock);

acum ar trebui sa fac chestia asta:


      System.out.print(dis.readUTF());//connected      sa citesc mesaj
            System.out.print(dis.readUTF());//user     sa citesc mesaj
            dos.writeUTF(kin.readLine());dos.flush();    sa trimit string
            System.out.print(dis.readUTF());//pass     sa citesc mesaj
                 dos.writeUTF(kin.readLine());dos.flush();  sa trimit string


am gasit si sa citesc $line = trim(socket_read($socket, MAXLINE));

si cred ca gasesc si cum sa scriu

Edited by alin19, 05 September 2008 - 16:36.


#14
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postalin19, on Sep 5 2008, 16:30, said:

cu astea ma chinui de cateva ore, da nu se realizeaza deloc conexiunea, de aceea am venit sa va intreb daca este alceva ca nu eram sigur daca cu asta ma pot conecta

:
PHP Warning:  socket_connect(): unable to connect [0]: A non-blocking socket operation could not be completed immediately.
on line 4



<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($sock);
socket_connect($sock,"127.0.0.1", 9191);
socket_set_block($sock);
switch(socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5))
{
        case 2:
                echo "[-] Connection Refused\n";
                break;
        case 1:
                echo "[+] Connected\n";
                break;
        case 0:
                echo "[-] Timeout\n";
                break;
}
?>
Faci socket-ul non-blocking, iar functia socket_connect() nu poate stabili conexiunea imediat. Nu il fa non-blocking decat dupa ce l-ai creat, daca asta e ce ai nevoie.

#15
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
serverul se comporta ca si cum sa facut logarea si trimite date, da mie nu imi afiseaza:

este cli

Connected\n?User:\n


este facuta gresit comanda de trimitere date? :

socket_write ($sock, $parola, strlen ($parola));



<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock,"127.0.0.1", 9191);
socket_set_block($sock);
$line = trim(socket_read($sock, 900));
echo $line.'\n';

$line = trim(socket_read($sock, 900));
echo $line.'\n';
$user='';

socket_write ($sock, $user, strlen ($user));
$line = trim(socket_read($sock, 900));

echo $line.'\n';
$parola='';

socket_write ($sock, $parola, strlen ($parola));

while (true)
	{
	$line = trim(socket_read($sock, 900));
	echo $line.'\n';
	
	}
?>

Edited by OriginalCopy, 05 September 2008 - 16:47.
FOLOSESTE CODE!


#16
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Uita-te la toate functiile folosite de tine si vezi ce valori poate returna fiecare. Fa error checking cum trebuie la fiecare apel.

Edited by OriginalCopy, 05 September 2008 - 16:56.


#17
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
$line = trim(socket_read($sock, 900));

La tine linia are 900? De fapt ar trebui sa citesti pana la new line nu primii 900 de bytes. cred ca ar trebui de fapt sa ai $line = trim(socket_read($sock, 900, PHP_NORMAL_READ));

Pentru mai multe detalii citeste manualul http://www.php.net/socket_read

#18
alin19

alin19

    Active Member

  • Grup: Members
  • Posts: 1,338
  • Înscris: 03.01.2007
tot de acolo citesc si eu, se opreste la primul mesaj trimis

<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock,"127.0.0.1", 9191);
socket_set_block($sock);

if (false === ($line = socket_read($sock, 2048))) 
			echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
else
		echo $line."\r\n";

if (false === ($line = socket_read($sock, 2048))) 
			echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
else
		echo $line."\r\n";


sleep(2);
$user='';
if (socket_write ($sock, $user, strlen ($user)))
echo "sa facut trimiterea de user";
else 
	echo "a aparut eroare la trimitere user";


sleep(2);
if (false === ($line = socket_read($sock, 2048))) 
			echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
else
		echo $line."\r\n";


sleep(2);
$parola='';

if (socket_write ($sock, $user, strlen ($user)))
	echo "sa facut trimiterea";
else 
	echo "a aparut eroare la trimitere user";


while (true)
	{
	$line = trim(socket_read($sock, 900));
	echo $line."\r\n";
	
	}
?>

Edited by alin19, 05 September 2008 - 17:13.


Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate