p2p的2端都部署有相同的应用程序.
每个程序都既包含服务端,又包含客户端.
现在以其中一个程序为例:
=====
Proxy --类似于客户端
Peer --类似于服务器
Peer 类:
1.初始化一个 TcpListner listner
2.listner.start()
3.while(true){
Socket s = listner.AcceptSocket();
//返回一个文件流
}
Proxy类:
1.下载方法:Stream out = new FileStream(本地路径);
Strem in = 根据Ip和端口取得的netStream
Copy(in,out);//copy为私有函数,复制流
2.上传:Stream in = new FileStream(本地路径);
Steam out = 阅读全文>
发表于 @ 2009年05月04日 11:30:00|评论(loading...)|举报|收藏
服务端:
1. new 一个TcpListener listner
2.listner.start
3.while(true)
4. 获取socket :Socket s = listner.AcceptSocket();
5. 获取netstream:NetworkStream ns = new NetworkStream(s);
6.读取netstream: StreamReader sr = new StreamReader(ns);
string command = sr.ReadLine();
7.应答: byte[] res = Encoding.UTF8.GetBytes("回答内容");
s.Send(res);
客户端
1. new TcpClient client
2. 获取流 : NetworkStream stream = client.client.GetStream();阅读全文>
发表于 @ 2009年05月04日 10:53:00|评论(loading...)|举报|收藏