August 28, 2017

Simple usage of Python socket(TCP)

< Server > 

import socket

HOST='127.0.0.1' 
PORT=8099 
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(1)
conn, addr=s.accept()
print('[Connected] ',addr)

while True:
    data=conn.recv(1024)
    if not data: break
    conn.send(data)
        
conn.close()

□ Life cycle : Creating socket → bind → listen → accept → send(recv) → close
□ AF_INET : Adress type of IPv4
□ SOCK_STREAM : TCP
□ listen(1) : It waits until there is a connection.
□ recv(1024) : It receives up to 1024 bytes from the client. The return value is byte object.



< Client > 

import socket

HOST='127.0.0.1' #localhost
PORT=8099 
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))
print("If you want to exit, Input 'exit()'")

while True:
        iData = input(">>>")
        if iData == "exit()":
                break;
        s.send(iData.encode())
        rData=s.recv(1024)
        print('[Received] ',rData.decode())
        
s.close()

□ Life cycle : Creating socket → connect → send(recv) → close
□ .encode() : It changes str type to byte object.
□ .decode() : It changes byte object to str type.