#-*-coding:utf-8-*-
importsocket,os
server=socket.socket()
server.bind(('localhost',6969))#綁定要監(jiān)聽的端口
print("正在監(jiān)聽端口")
server.listen(5) #監(jiān)聽
print("我要開始等電話了")
while True:
server.listen(3)
conn, addr = server.accept() #等電話打進(jìn)來 阻塞狀態(tài)
print(conn) # conn就是客戶端連過來而在服務(wù)端為其生成的一個連接實(shí)例
print("電話來了")
while True:
data=conn.recv(1024)#通過conn連接實(shí)例接收數(shù)據(jù) recv默認(rèn)是阻塞的
print("recv:",data)
if notdata:
print("client has lost...")
break#客戶端已斷開,conn.recv收到的就是空數(shù)據(jù)
#res=os.popen(data).read()
#conn.send(res) #通過conn連接實(shí)例發(fā)送數(shù)據(jù)
f=open("kvm-1.flv")
data=f.read()
print(len(data))
conn.sendall(data)
server.close()
#-*-coding:utf-8-*-
importsocket
client=socket.socket()#默認(rèn)famliy=AF_INET(ipv4)地址簇 type=SOCK_STREAM (tcp/ip)聲明socket類型,同時生成socket連接對象
client.connect(("localhost",6969))
f=open("video.avi",'wb')
while True:
msg=raw_input("請輸入:").strip() #不能發(fā)送空數(shù)據(jù)
iflen(msg)==0:continue #如果msg長度為0,就繼續(xù) ,重新發(fā)
client.send(msg.encode("utf-8"))#3.x只能發(fā)bytes類型數(shù)據(jù),只能接收ASCII數(shù)據(jù),漢字不行,要發(fā)漢字只能編碼成utf-8格式
data=client.recv(102400)#收1024字節(jié)數(shù)據(jù),每次最多收10M左右數(shù)據(jù),官方建議8192字節(jié)
#print(data.decode("utf-8")) #bytes類型打印出來要解碼
f.write(data)
f.flush()
client.close()
網(wǎng)站題目:socket_傳文件_linux環(huán)境
鏈接地址:
http://weahome.cn/article/goegej.html