189 8069 5689

socket_传文件_linux环境

#-*-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

其他资讯