這學期課很多,加上學校就業辦這邊事情也不少,所以零散時間琢磨了很多天,開始想用進程的併發實現一個收,一個發,但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和端口
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':
if msg == 'q':
Sockin.close()
break
print msg
break
print msg
PCb:
import socket
Sockin = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Sockin.bind(('192.168.10.8',23000))
Sockin.bind(('192.168.10.8',23000))
while True:
msg,(addr,port) = Sockin.recvfrom(100)
if msg == 'q':
Sockin.close()
break
else:
print msg
break
else:
print msg
text = raw_input('> ')
Sockin.sendto(text,(('192.168.10.5',23000)))
if text =='q':
Sockin.close()
break
break
編譯後測試截圖:
PCa:
PCb:
這是個相當簡單的程序,我接下來要做的是將該程序整合到PyQt4裏面去,以實現聊天功能!
加油!