服務(wù)器端:
#!/usr/bin/python
import socket
host='127.0.0.1'
port=8123
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(2)
try:
while True:
conn,add=s.accept()
while True:
data2=''
data1=conn.recv(3)
if data1=='EOF':
conn.send('hello clietn1')
break
if data1=='FOE':
conn.send('hello client2')
break
data2+=data1
print data2
except KeyboardInterrupt:
print "you have CTRL+C,Now quit"
s.close()
注:服務(wù)器端一次只接收 3 個(gè)字節(jié)的數(shù)據(jù),我讓讀取進(jìn)入循環(huán),然后不斷累加到 data2 中,當(dāng)讀取到 EOF 時(shí),退出打印 data2,當(dāng)讀取 FOE 時(shí),退出打印 data2,(EOF 和 FOE 是客戶端發(fā)送完數(shù)據(jù)時(shí)發(fā)送的結(jié)束符),當(dāng)接收到 CTRLC+C 時(shí),關(guān)閉 socket
客戶端 1:
#!/usr/bin/env python
import socket
import os
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ss.connect(('127.0.0.1',8123))
#f=open('aa','wb')
ss.sendall('hello serverdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd')
os.system('sleep 1')
ss.send('EOF')
data=ss.recv(1024)
print "server dafu %s"%data
ss.close()
客戶端 2:
#!/usr/bin/env python
import socket
import os
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ss.connect(('127.0.0.1',8123))
#f=open('aa','wb')
ss.sendall('wokao sile')
os.system('sleep 1')
ss.send('FOE')
data=ss.recv(1024)
print "server dafu %s"%data
ss.close()