Python實現局域網(Socket)通信

這學期課很多,加上學校就業辦這邊事情也不少,所以零散時間琢磨了很多天,開始想用進程的併發實現一個收,一個發,但ide無法實現同時print和input,所以暫時只實現了一個類似對講機一樣的程序,就是A說B聽,然後B說A聽,如此循環。
先看程序:
PCa:
import socket
 
Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)        #新建socket
Sockin.bind(('192.168.10.5',23000))   #socket綁定該主機的ip和端口

while True:             #循環中執行收發功能
    text = raw_input('> ')
    Sockin.sendto(text,(('192.168.10.8',23000)))     #將 'text’ 發送給對方
    if text == 'q':
        Scokin.close()  #退出時關閉socket
        break
       
    msg,(addr,port) = Sockin.recvfrom(100)    # 接受數據
    if msg == 'q':
        Sockin.close()
        break
    print msg
 
 
 
PCb:
import socket
Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Sockin.bind(('192.168.10.8',23000))

while True:
    msg,(addr,port) = Sockin.recvfrom(100)
    if msg == 'q':
        Sockin.close()
        break
    else:
        print msg

    text = raw_input('> ')
    Sockin.sendto(text,(('192.168.10.5',23000)))
    if text =='q':
        Sockin.close()
        break
 
 
編譯後測試截圖:
PCa:
 
PCb:
 
這是個相當簡單的程序,我接下來要做的是將該程序整合到PyQt4裏面去,以實現聊天功能!
 
加油!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章