下载结果没有发现错误文件.当开启迅雷下载后没有发现文件错误.
测试文件发送到Server和下载的情况基本差不多,这说明了在网络不好的情况处理发送大数据包似首容易产生错误,但看TCP/IP协议讲解这情况似乎不存在,因为当一个发送数据超过某个值的时候,TCP会划分块进行传输并保证其顺序.但网络不好的情况测试结果接收的数据有错误,但处理的数据大小是正确的,也并没影响整个协议的分解.由于对CP/IP协议、低层和路由处理的不了解,暂没找到具体原因。。。不排除程序存在还没发现的错误,打算给发送的文件数据加上校验再测试一下看情况
C# TCP网络编程,文件上传完之后如何让服务端通知客户端已经收到。
主要是TCP在服务端和客户端通讯未中断前,如何做让服务端发送消息给客户端?
大文件上传我已经用分包循环发送。但是这个发送消息实在是没弄明白原理,请大家帮忙帮忙指点一下!
..............................................以下是我手动打上来的字..如果错了..自行脑补.TCP/IP协议:我给您贴一段百度百科的话
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。
TCP/IP通常被人誉为:双向连接协议,传输木有UDP快.如果说你不知道如何使用.就基本等于.你没有理解.:双向连接协议你把TCP/IP当作TCP或者UDP使用了..就算是TCP也有一个上传失败的说法(UDP完全木有...)..那么..嗯?呵呵..不掉你胃口了...说正事...唉今天属下请假好多..无聊滴...
来..咱们看看通信的代码...
TcpClient tcp = new TcpClient()//我就不给你使用SOCKET连接了..怕太深你不明白楼~~~tcp.Client.Send(new byte[] { })//在这里发送吧?对吧~
TcpListener tcpl = new TcpListener(1234)
tcpl.AcceptSocket()//这里就能获取到一个客户连接了对吧?
OKOK
那么还不简单?tcp.Client.Send(newbyte[] { })//在这里发送吧?对吧~这句上传文件
tcpl.AcceptSocket()//这里就能获取到一个客户连接了对吧?
这里换个思路
Socket clientSocket = tcpl.AcceptSocket()//这里就能获取到一个客户连接了对吧?clientSocket.Send(new byte[] { })//这里就是服务器给客户端发消息了
OKOK
那么客户端怎么接收?
..这个..我不想你告诉我你的客户端是同步上传而不是异步..如果你知道什么是异步
异步接收异步发送解决
tcp.Client.ReceiveAsync(new SocketAsyncEventArgs())//异步接收tcp.Client.SendAsync(new SocketAsyncEventArgs())//异步发送..
再不知道?..嗯..我也不知道怎么给你说了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)