Professional Documents
Culture Documents
Inicie python no
modo interativo
digitando na
linha de
comando:
$ python
Use comando
print
Modo interativo:
http://wiki.python.org.br/ModoInterativo
Edilayne Salgueiro 23/02/2016
Incio simples
3
Uso de variveis:
>>> x = 42
>>> print Valor de x: " + str(x)
O que faz o cdigo abaixo?
Tipos de dados:
https://pt.wikibooks.org/wiki/Python/Conceitos_bsicos/Tipos_e_operadores
Estrutura de dados:
https://pt.wikibooks.org/wiki/Python/Conceitos_bsicos/Estrutura_de_dados
Funes:
https://pt.wikibooks.org/wiki/Python/Conceitos_bsicos/Funes
Estruturas de controle
http://turing.com.br/pydoc/2.7/tutorial/controlflow.html
Mdulos
http://turing.com.br/pydoc/2.7/tutorial/modules.html
Edilayne Salgueiro 23/02/2016
Programao de sockets
Request Processo
Processo Cliente
Servidor
Reply
Mquina Cliente
Mquina Servidora
Socket Bsico
9
1. Incio
Para utilizar as primitivas de comunicao (funes)
em Python necessrio importar o mdulo socket:
import socket
Alguns exemplos de funes presentes no mdulo
socket so:
socket.gethostname()
Para obter o IP de sua mquina, pode-se utilizar:
socket.gethostbyname(socket.gethostname())
Exemplos:
http://wiki.python.org.br/SocketBasico
Edilayne Salgueiro 23/02/2016
Para obter IP
10
$ nano host.py
import socket
hostname= socket.gethostname()
print O nome dessa maquina e: +hostname
hostname = maps.google.com
IP = socket.gethostbyname(hostname)
print ("O endereo de ", hostname, " e ", IP)
$ python host.py
O endereo de maps.google.com e 173.194.118.98
Endereos de Sockets:
http://wiki.python.org.br/SocketBasico
11
Processo
Processo Cliente
Servidor
Mquina Cliente
Mquina Servidora
Programao de socket com
UDP: sem conexo
entre cliente e
servidor ponto de vista da aplicao
sem handshaking
emissor conecta de forma UDP oferece transferncia no
explcita endereo IP e confivel de grupos de bytes
porta do destino a cada (datagramas) entre
segmento
cliente e servidor
SO conecta endereo IP e
porta do socket emissor a
cada segmento
Servidor pode extrair Nota: A terminologia oficial para u
endereo IP, porta do pacote UDP datagrama. Nesta
emissor a partir do aula, usamos segmento UDP em
segmento recebido seu lugar.
Exemplo em curso
http://wiki.python.org.br/SocketBasico
# servidor # cliente
import socket import socket
cria socket,
criar socket,
clientSocket
ServerSocket= socket.socket(socket.AF_INET,
socket.SOCK_DGRAM) l mensagem coloca em
bind clientSocket
escreve mensagem na
tela l mensagem coloca em
clientSocket
fecha
clientSocket
Programao de socket usando
controlado pelo
controlado pelo processo desenvolvedor
desenvolvedor processo
da aplicao
da aplicao
socket socket
controlado TCP com TCP com controlado
buffers, pelo sistema
pelo sistema buffers, Internet variveis operacional
operacional variveis
hospedeiro hospedeiro
ou servidor ou servidor
Programao
de socket com TCP
cliente deve contactar servidor quando contactado pelo
processo servidor primeiro cliente, servidor TCP cria
deve estar rodando novo socket para processo
servidor se comunicar com
servidor deve ter criado
cliente
socket (porta) que aceita
contato do cliente permite que servidor fale
com mltiplos clientes
cliente contacta servidor: nmeros de porta de origem
criando socket TCP local ao usados para distinguir
cliente clientes (mais no Cap. 3)
especificando endereo IP, #
porta do processo servidor ponto de vista da aplicao
quando cliente cria socket: TCP oferece transferncia
cliente TCP estabelece de bytes confivel, em ordem
conexo com servidor TCP (pipe) entre cliente e servidor
Interao de socket Como usar
esse modelo
cliente/servidor: TCP para
servidor (rodando em hostid) implementar
cria socket, HTTP?
porta = x, para
requisio que chega:
welcomeSocket
Cliente
espera requisio
estabelecimento cria socket,
da conexo que chega da conexo TCP conexo com hostid, porta = x
clientSocket
connectionSocket
escrever resposta em
connectionSocket l resposta de
clientSocket
fecha
connectionSocket fecha
clientSocket
19 Redes 2
Python & sockets