Active Members MrGrj Posted March 8, 2014 Active Members Report Posted March 8, 2014 Deci, ma plictiseam eu asa pe-acasa si ma gandeam sa fac un tutorial despre Socket Network Programming in Python. Si am ajuns la asta:Vom avea nevoie de doua scripturi: unul pentru server si altul pentru client. Eu am lucrat pe Linux asa ca in continuare tutorialul va fi pentru Linux users. (FYI, it's the same shit on Windows).Primul pas:In Terminal introducem urmatoarea comanda:gedit server.pyNe-a aparut o fereastra maree, care seamana cu Notepadu' , right ? Gedit = Notepad = editor de text.Al doilea pas:import sysimport socket# creez un socket object s = socket.socket()print "Socket-ul a fost creeat cu succes"#acum, trebuie sa rezervati un port pe calcu' vostru. Aici o sa folosesc 12345,dar evident puteti sa puneti ce vreti voiport = 12345#bind leaga serverul de un port / ip specific astfel incat poate asculta requesturile venite pe port-ul / ip-ul respectivs.bind(('',port))print "Socket-ul s-a conectat cu succes la: %s" %port#acum vreau sa pun socketu' in listening mode ( adica sa permita conectiunii sa se lege la el)s.listen(5)#chestia de mai sus inseamna ca 5 conexiuni sunt tinute in asteptare daca server-ul e ocupat. Daca un al 6-lea socket incearca sa se conecteze atunci conexiunea este refuzata.print "Socket-ul e in listening mode"while True: #acum stabilesc conectiunea cu clientul c, addr = s.accept() print 'Am primit conexiunea de la:', addr #ca sa fiu civilizat, zic mersi lu' fraieru' de client c.send('Multumesc pentru ca te-ai conectat boss. M-ai salvat de la moarte.') #inchid conexiunea cu clientul c.close()Nu uitati sa salvati inainte de a inchide fisierul !Buun, acestea fiind zise avem serverul setat. Acum:1.python server.pyAr trebui sa va apara ceva de genul:Socket-ul a fost creeat cu succesSocket-ul s-a conectat cu succes la: 12345Socket-ul e in listening mode2. Deschideti un alt tab in Terminat(CTRL+ALT+T) si introduceti urmatoarea comanda:telnet localhost 12345Ceva de genul asta ar trebui sa va apara acum in tabul in care va aflati,Trying ::1...Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.Multumesc pentru ca conectare boss.Connection closed by foreign host.Iar in primul:Am primit conexiunea de la: ('127.0.0.1', 46104)Acum ca serverul este functional, avem nevoie de cineva cu care sa comunice, respectiv un client. 1. gedit client.py2.import socket s = socket.socket() # Definesc portu' la care vreau sa ma conectez (acelasi ca ala de pe server,logic)port = 12345 # Ma conectez la server pe local computers.connect(('127.0.0.1', port))# Primesc date de la serverprint s.recv(1024)# Inchid conexiuneas.close()Slavati si deschideti un nou terminal in care scrieti:python client.pyCeva de genul va aparea:Multumesc pentru ca conectare bossAm facut scripturile cat mai basic, astfel incat oricine va reusi sa le inteleaga. Quote