Jump to content
MrGrj

[Tutorial]Socket Network Programming

Recommended Posts

  • Active Members
Posted

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.py

Ne-a aparut o fereastra maree, care seamana cu Notepadu' , right ? Gedit = Notepad = editor de text.

Al doilea pas:


import sys
import 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 voi
port = 12345

#bind leaga serverul de un port / ip specific astfel incat poate asculta requesturile venite pe port-ul / ip-ul respectiv
s.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.py

Ar trebui sa va apara ceva de genul:


Socket-ul a fost creeat cu succes
Socket-ul s-a conectat cu succes la: 12345
Socket-ul e in listening mode

2. Deschideti un alt tab in Terminat(CTRL+ALT+T) si introduceti urmatoarea comanda:


telnet localhost 12345

Ceva 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.py

2.


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 computer
s.connect(('127.0.0.1', port))

# Primesc date de la server
print s.recv(1024)

# Inchid conexiunea
s.close()

Slavati si deschideti un nou terminal in care scrieti:


python client.py

Ceva de genul va aparea:


Multumesc pentru ca conectare boss

Am facut scripturile cat mai basic, astfel incat oricine va reusi sa le inteleaga.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...