#-*-coding:utf-8-*-
importsocket,os
server=socket.socket()
server.bind(('localhost',6969))#绑定要监听的端口
print("正在监听端口")
server.listen(5) #监听
print("我要开始等电话了")
while True:
server.listen(3)
conn, addr = server.accept() #等电话打进来 阻塞状态
print(conn) # conn就是客户端连过来而在服务端为其生成的一个连接实例
print("电话来了")
while True:
data=conn.recv(1024)#通过conn连接实例接收数据 recv默认是阻塞的
print("recv:",data)
if notdata:
print("client has lost...")
break#客户端已断开,conn.recv收到的就是空数据
#res=os.popen(data).read()
#conn.send(res) #通过conn连接实例发送数据
f=open("kvm-1.flv")
data=f.read()
print(len(data))
conn.sendall(data)
server.close()
#-*-coding:utf-8-*-
importsocket
client=socket.socket()#默认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() #不能发送空数据
iflen(msg)==0:continue #如果msg长度为0,就继续 ,重新发
client.send(msg.encode("utf-8"))#3.x只能发bytes类型数据,只能接收ASCII数据,汉字不行,要发汉字只能编码成utf-8格式
data=client.recv(102400)#收1024字节数据,每次最多收10M左右数据,官方建议8192字节
#print(data.decode("utf-8")) #bytes类型打印出来要解码
f.write(data)
f.flush()
client.close()
本文名称:socket_传文件_linux环境
转载来于:
http://cdxtjz.cn/article/goegej.html