老师,我编写完以后运行正常,但我不明白一个问题,为什么我把ip改成
192.168.1.7
(也就是本地局域网)之后就出了问题,程序先是没有反应,很长一段时间过后又在左侧文件加载出了图片,然后加载出的图片却是打不开的那种,是不是这个本地局域网ip并不一定就是这个服务器的ip?还是说有其他原因?
代码如下
from socket import *
import struct
filename="xinling.jpg"
server_ip="10.19.130.246" # 第四行
send_data=struct.pack("!H%dsb5sb"%len(filename),1,filename.encode(),0,"octet".encode(),0)
s= socket(AF_INET,SOCK_DGRAM)
s.sendto(send_data,(server_ip,69))
f= open(filename,"ab")
while True:
recv_data = s.recvfrom(1024)
caozuoma,ack_num = struct.unpack("!HH",recv_data[0][:4])
rand_port=recv_data[1][1]
if int(caozuoma)==5:
print("文件不存在...")
break
print("操作码:%d,ACK:%d,服务器随机端口:%d,数据长度:%d"%(caozuoma, ack_num,rand_port,len(recv_data[0])))
f.write(recv_data[0][4:])
if len(recv_data[0])<516:
break
ack_data=struct.pack("!HH",4, ack_num)
s.sendto(ack_data,(server_ip,rand_port))
在第四行,如果我换成192.168.1.7之后程序就会卡咝~