我正在阅读一本网络书籍,从我读过的关于TCP协议的内容来看,它确保了数据的发送.我想写一些代码来进行文件传输.在开始之前,我还在Python文档中读到了这段话:
"应用程序负责检查是否已发送所有数据;如果仅传输了部分数据,则应用程序需要尝试传送剩余数据"
这似乎与我在网络书中读到的内容相矛盾.上面的段落说应用程序负责丢失的数据.
我可能会误解,所以我想问一些问题:
1 - 如果我必须检查数据是否已发送,那么为什么要使用TCP?
2-I在网络书中读到TCP进行数学计算以确保数据存在.那为什么不浪费时间使用TCP呢?
3- python文档没有指定缓冲区大小.一次发送的最大缓冲区大小是多少?
4-I在网络书中读到,如果服务器知道客户端可以接收它,它可以增加它可以发送的数据量.这可以改变缓冲区的大小超过最大数量吗?
这是我到目前为止的代码尝试:
服务器代码:
import socket
s = socket.socket()
host = socket.gethostname()
port = 3000
s.bind((host,port))
s.listen(1)
c,addr = s.accept()
with open("Filetosend","rb") as File:
data= File.read(1024)
while data:
c.send(data)
data = File.read(1024)
s.close()
Run Code Online (Sandbox Code Playgroud)
客户代码:
import socket
s= socket.socket()
host = socket.gethostname()
port = 3000
s.connect((host,port))
with open("Filetowrite","wb") as File:
data = s.recv(1024)
while data:
File.write(data)
data = s.recv(1024)
s.close()
Run Code Online (Sandbox Code Playgroud) 我刚刚下载了 Visual Studio 并创建了一个新的 Xamarin.Forms 项目。但是,当使用自动生成的代码构建应用程序时,我在 MainPage.xaml 的代码隐藏中遇到了以下错误:
The name 'InitializeComponent' does not exist in the current context
我在互联网上查找了解决方案,但没有找到适合我的解决方案。我尝试过的:
更改 MainPage.xaml 属性中的自定义工具(之前为空)
我检查了命名空间是否匹配(确实如此)
我尝试保存所有文件
我无法从 C# 代码背后的代码访问 xaml 文件中定义的标签。
我尝试了该x:name="l"属性,但它告诉我“'l' 未定义”:
任何人都可以通过提供示例来帮助我如何从背后的 C# 代码访问控件吗?