1. 程式人生 > >python內網即時通訊小程式

python內網即時通訊小程式

根據TCP協議,使用python在兩程序之間建立通訊,來模擬一個即時通訊,類似於QQ

環境:kali 一個server.py和client.py

sever.py
# -*- coding: utf-8 -*
#Server.py
import socket
host = socket.gethostname()
port = 12345
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
sock, addr = s.accept()
print "Linked"
info = sock.recv(1024)
while info != "exit":
    print "From Others : "+info
    send_mes = raw_input("")
    sock.send(send_mes)
    if send_mes == "exit":
        break
    info = sock.recv(1024)
sock.close()
s.close()
client.py
# -*- coding: utf-8 -*
#Client.py
import socket              
s = socket.socket()         
host = socket.gethostname() 
port = 12345               
s.connect((host, port))
print "Linked"
info = ""
while info != "exit":
    print "From Others: "+info
    send_mes = raw_input("")
    s.send(send_mes)
    if send_mes == "exit":
        break
    info = s.recv(1024)
s.close()


二個指令碼需要同時執行,結果如下圖


在kali上抓包簡要分析一下





可以看出來我們剛剛之間傳輸的資料,從wireshark可以分析得到是使用TCP協議,傳送一個包後會返回一個ACK包進行確認,然後再傳輸第二個包,以此類推