摘要 import socket #网路编程模块
⑵ python socket 做了一个传文件的脚本 为什么在IDLE里运行没问题 但是双击直接打开就会抱错
>>>如果你没有在文件开头# encoding: utf-8,idle里面有设置默认编码的
>>>如果是在windows下面,而你的编码又是utf-8的话,那么你双击运行,如果含有中文是会报错的,因为windows(中文版本)的cmd的默认编码是gbk的,这个当然会出错了,所以解决办法是将文件保存为gbk或者gb18030或者cp936,在文件开头加上#_*_encoding:cp936_*_就可以了。
>>>如果是在linux下面的话,设置成utf-8的吧。
⑶ Python,socket如何实现通过Server将client1的数据传给client2。
普通情况下是不行的。但是通过线程或者进程间的数据共享,还是可以的。
提供一个思路,使用多线程socketserver,针对每一个用户创建一个服务线程,然后在线程之间通过消息队列,共享数据。
参考:刘江的Python教程中关于多线程和多进程的章节
⑷ Python用socket传输文件,收到的文件大小不一样,求解答,谢谢
1.电脑已经搭建python环境
2.深入到需要传输的文件目录下,此处以分享 nemo-huiyuanfei 文件为例
3.在路径栏输入 cmd 按回车进入终端
4.输入命令 python -m SimpleHTTPServer 8090 按回车 (端口号可以任意,不用必须为8090)
5.在局域网中任意浏览器输入框输入 文件所在主机 IP + Port 即可访问此文件目录并下载 ()
6.点击需要下载的文件即可下载
7. 【注意】python3.X 的命令输入为 python -m http.server 8090
⑸ python socket 网络编程 ,服务器端发的文件大小跟客户端接受打文件大小不一样 这是什么原因
很简单,你说让服务端发1024大小他就发1024大小吗,不一定tcp协议他会把内容先丢缓存再缓存拿,假设你让服务器发1024大小他有时候会分好几次发,你只要实时读取客户端接收文件大小就好了,和服务端发过来文件大小进行比较然后考虑后面要不要继续接收
⑹ python使用socket发送数据,没有响应。
因为我不知道你的 SMGP_CLIENT 和你的GETREQUSTPACKET 怎么实现的 我贴一下 发送数据的代码吧 有问题你吧详细的代码贴上我看看
import socket
mysocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
mysocket.connect(("192.168.5.30",80))
BUFFER_SIZE = 1024
buff="aaaaaaaaaaaa"
mysocket.send(buff)
print (mysocket.recv(BUFFER_SIZE))
mysocket.close()
因为是给 服务器的80端口发数据 所以得到的返回值肯定是 无法找到页面
⑺ 请教如何使用python的socket发送二进制数据
socket发送的本来就是按二进制发送,你是想把数据打包成str用socket发出去吧?
可以用struct来打包
import struct
data = struct.pack('i', 123)
然后用socket发送就行了,这里打包一个整数的例子,struct很强大可以网络一下具体用法。
⑻ python中,如何将一个指定的文件发送到对方主机的指定端口呢(用socket方式) 新手求指教!
#发送端
#-*-coding:utf-8-*-
importTkinter
importtkFileDialog
fromsocketimport*
importstruct
importos
defclient(filename):
Addr=('127.0.0.1',8000)
BUFSIZE=2048
Sendsocket=socket(AF_INET,SOCK_STREAM)
Sendsocket.connect(Addr)
FileHead=struct.pack('128s11i',filename,0,0,0,0,0,0,0,0,os.stat(filename).st_size,0,0)
Sendsocket.send(FileHead)
fp=open(filename,'rb')
while1:
FileData=fp.read(BUFSIZE)
ifnotFileData:
break
Sendsocket.send(FileData)
fp.close()
Sendsocket.close()
defFileOpen():
r=tkFileDialog.askopenfilename(title='PythonTkinter',
filetypes=[('Allfiles','*')])
filename=r.split('/')
client(filename[-1])
root=Tkinter.Tk()
button1=Tkinter.Button(root,text='FileOpen',height=8,width=14,bg='blue',
command=FileOpen)
button1.pack()
root.mainloop()#接收端
#-*-coding:utf-8-*-
fromsocketimport*
importos
importstruct
Addr=('127.0.0.1',8000)
BUFSIZE=1024
FileInfoSize=struct.calcsize('128s32sI8s')
SocketRecv=socket(AF_INET,SOCK_STREAM)
SocketRecv.bind(Addr)
SocketRecv.listen(5)
print"waitting........"
conn,addr=SocketRecv.accept()
print"sendfrom",addrFileHead=conn.recv(FileInfoSize)
filename,temp1,filesize,temp2=struct.unpack('128s32sI8s',FileHead)
printfilename,len(filename),type(filename)
printfilesize
filename='new_'+filename.strip('