C# 用TcpListener发送和接收文件的问题

震我一下巧克力 2008-12-09 03:03:22
用TcpListener 怎样实现客户端向服务端发送mp3文件?服务端怎么接收和保存这个mp3
用TcpListener 怎样发送一个对象,假如我在客户端创建了一个用户对象,包含了姓名,年龄等等的信息,怎样把这个对象发送的服务端上?

怎样把文件读取成NetworkStream可以发送的流?
...全文
393 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
qinhl99给的教程非常棒正是我要的,感谢liningln0详细的解答
hangang7403 2008-12-09
  • 打赏
  • 举报
回复
up
killer_liqiao 2008-12-09
  • 打赏
  • 举报
回复
up
jinsuo_1986 2008-12-09
  • 打赏
  • 举报
回复
UP 学习
裸奔在上海 2008-12-09
  • 打赏
  • 举报
回复
如果要 包含用户名密码这样的东西,那么你在传输的时候肯定存在一个序列化的问题,可不可一定义一个struct 这个里面包含用户信息,在服务器也定义一个同样的struct 楼主试试能不能解决
dayizhixiaotutu 2008-12-09
  • 打赏
  • 举报
回复
TcpListener 怎样发送一个对象 的话要将对象先序列化

qinhl99 2008-12-09
  • 打赏
  • 举报
回复
看这个例子吧
http://blog.csdn.net/lgg228tao/archive/2008/11/26/3378963.aspx
qinhl99 2008-12-09
  • 打赏
  • 举报
回复
www.ineeke.cn/archives/518/
优途科技 2008-12-09
  • 打赏
  • 举报
回复
顶一下吧。
birdlonger 2008-12-09
  • 打赏
  • 举报
回复
好象涉及序列化问题。
不懂,帮顶 + mark !
liningln0 2008-12-09
  • 打赏
  • 举报
回复
1. 用TcpListener 怎样实现客户端向服务端发送mp3文件?服务端怎么接收和保存这个mp3
//在能够读取的字符串的总字节数大于BufferSize的时候会出现字符串截断现象,因为缓存中的数目总是有限的,而对于大对象,比如说图片或者其它文件来说,则必须采用“分次读取然后转存”这种方式
// "分次读取然后转存"的方式获取字符串
byte[] buffer = new byte[1024];
int bytesRead; // 读取的字节数
MemoryStream msStream = new MemoryStream();
do
{ bytesRead = streamToClient.Read(buffer, 0, BufferSize);
msStream.Write(buffer, 0, bytesRead);
} while (bytesRead > 0);
buffer = msStream.GetBuffer();
string msg = Encoding.Unicode.GetString(buffer);
这是在server接受数据的哈,在client端类似.
2. 用TcpListener 怎样发送一个对象,假如我在客户端创建了一个用户对象,包含了姓名,年龄等等的信息,怎样把这个对象发送的服务端上?
由于TcpListener 发送的只是一种编码后的数据,不会考虑数据的具体什么内容,所以建议使用WCF的方式处理这个对象.如果实在想用这种方式的话,就要看这个对象的大小了,大的话类似上面,否则的话直接传送数据即可.
3. 怎样把文件读取成NetworkStream可以发送的流?
string msg = "test send message";//这里可以是你读取的文件的信息.
NetworkStream streamToServer = client.GetStream();
byte[] buffer = Encoding.Unicode.GetBytes(msg); // 获得缓存,既是你说的把文件读取的信息转化为可以发送的流.
streamToServer.Write(buffer, 0, buffer.Length); // 发往服务器
Console.WriteLine("Sent: {0}", msg);

如果楼主还是不清楚,请多看看基础知识.希望上面的对你有帮助.
yeah920 2008-12-09
  • 打赏
  • 举报
回复
友情顶.
第1章 进程、线程与网络协议  1.1 进程和线程  1.1.1 Process类  1.1.2 Thread类  1.1.3 在一个线程中操作另一个线程的控件 1.2 IP地址与端口  1.2.1 TCP/IP  1.2.2 IPAddress类与Dns类  1.2.3 IPHostEntry类  1.2.4 IPEndPoint类  1.3 套接字  1.3.1 Socket类  1.3.2 面向连接的套接字  1.3.3 无连接的套接字  1.4 网络流  习题  第2章 TCP应用编程  2.1 同步TCP应用编程  2.1.1 使用套接字发送接收数据  2.1.2 使用NetworkStream对象发送接收数据  2.1.3 TcpClient与TcpListener类  2.1.4 解决TCP的无消息边界问题  2.2 利用同步TCP编写网络游戏  2.2.1 服务器端编程  2.2.2 客户端编程  2.3 异步TCP应用编程  2.3.1 EventWaitHandle类  2.3.2 AsyncCallback委托  2.3.3 BeginAcceptTcpClient方法和EndAcceptTcpClient方法  2.3.4 BeginConnect方法和EndConnect方法  2.3.5 发送数据  2.3.6 接收数据  2.4 异步TCP聊天程序  2.4.1 服务器端设计  2.4.2 客户端设计  习题  第3章 UDP应用编程  3.1 UDP基础知识  3.2 UDP应用编程技术  3.2.1 UdpClient类  3.2.2 发送接收数据的方法  3.3 利用UDP进行广播和组播  3.3.1 通过Internet实现群发功能  3.3.2 在Internet上举行网络会议讨论  习题  第4章 P2P应用编程  4.1 P2P基础知识  4.2 P2P应用举例  习题  第5章 SMTP与POP3应用编程  5.1 通过应用程序发送电子邮件  5.1.1 SMTP  5.1.2 发送邮件  5.2 利用同步TCP接收电子邮件  5.2.1 POP3工作原理  5.2.2 邮件接收处理  习题  第6章 网络数据加密与解密  6.1 对称加密  6.2 不对称加密  6.3 通过网络传递加密数据 6.4 Hash算法与数字签名  习题  第7章 三维设计与多媒体编程  7.1 简单的3D设计入门  7.2 DirectX基础知识  7.2.1 左手坐标系与右手坐标系  7.2.2 设备  7.2.3 顶点与顶点缓冲  7.2.4 Mesh对象  7.2.5 法线  7.2.6 纹理与纹理映射  7.2.7 世界矩阵、投影矩阵与视图矩阵  7.2.8 背面剔除  7.3 Primitive  7.4 Mesh  7.5 灯光与材质  7.6 音频与视频  7.7 直接使用SoundPlayer类播放WAV音频文件  习题
前 言 6 第1章 进程、线程与网络协议 7 1.1 进程和线程 7 1.1.1 Process类 7 1.1.2 Thread类 9 1.1.3 在一个线程中操作另一个线程的控件 13 1.2 IP地址与端口 15 1.2.1 TCP/IP网络协议 16 1.2.2 IPAddress类与Dns类 17 1.2.3 IPHostEntry类 17 1.2.4 IPEndPoint类 17 1.3 套接字 19 1.3.1 Socket类 20 1.3.2 面向连接的套接字 21 1.3.3 无连接的套接字 23 1.4 网络流 24 1.5 习题1 25 第2章 TCP应用编程 27 2.1 同步TCP应用编程 28 2.1.1 使用套接字发送接收数据 28 2.1.2 使用NetworkStream对象发送接收数据 30 2.1.3 TcpClient与TcpListener类 31 2.1.4 解决TCP协议的无消息边界问题 33 2.2 利用同步TCP编写网络游戏 34 2.2.1 服务器端编程 34 2.2.2 客户端编程 49 2.3 异步TCP应用编程 66 2.3.1 EventWaitHandle类 67 2.3.2 AsyncCallback委托 69 2.3.3 BeginAcceptTcpClient方法和EndAcceptTcpClient方法 70 2.3.4 BeginConnect方法和EndConnect方法 70 2.3.5 发送数据 71 2.3.6 接收数据 72 2.4 异步TCP聊天程序 73 2.4.1 服务器端设计 73 2.4.2 客户端设计 79 2.5 习题2 83 第3章 UDP应用编程 84 3.1 UDP协议基础知识 84 3.2 UDP应用编程技术 84 3.2.1 UdpClient类 84 3.2.2 发送接收数据的方法 86 3.3 利用UDP协议进行广播和组播 90 3.3.1 通过Internet实现群发功能 90 3.3.2 在Internet上举行网络会议讨论 96 3.4 习题3 101 第4章 P2P应用编程 102 4.1 P2P基础知识 102 4.2 P2P应用举例 104 4.3 习题4 114 第5章 SMTP与POP3应用编程 115 5.1 通过应用程序发送电子邮件 115 5.1.1 SMTP协议 115 5.1.2 发送邮件 116 5.2 利用同步TCP接收电子邮件 120 5.2.1 POP3工作原理 121 5.2.2 邮件接收处理 123 5.3 习题5 127 第6章 网络数据加密与解密 128 6.1 对称加密 128 6.2 不对称加密 133 6.3 通过网络传递加密数据 136 6.4 Hash算法与数字签名 152 6.5 习题6 153 第7章 三维设计与多媒体编程 154 7.1 简单的3D设计入门 154 7.2 DirectX基础知识 160 7.2.1 左手坐标系与右手坐标系 160 7.2.2 设备 160 7.2.3 顶点与顶点缓冲 161 7.2.4 Mesh对象 162 7.2.5 法线 162 7.2.6 纹理与纹理映射 162 7.2.7 世界矩阵、投影矩阵与视图矩阵 162 7.2.8 背面剔除 164 7.3 Primitive 164 7.4 Mesh 171 7.5 灯光与材质 177 7.6 音频与视频 187 7.7 直接使用SoundPlayer类播放WAV音频文件 191 7.8 习题7 193 第8章 上机实验指导 194 8.1 实验一 简单网络聊天系统 194 8.2 实验二 网络呼叫应答提醒系统 195 8.3 实验三 文件数据加密与解密 199
学习.NET Socket编程的好书,资源包含Word版电子书(201页完整版),源代码,PPT,习题解答,史上最全。 目录-------------------------------------------------------- 前 言 6 第1章 进程、线程与网络协议 7 1.1 进程和线程 7 1.1.1 Process类 7 1.1.2 Thread类 9 1.1.3 在一个线程中操作另一个线程的控件 13 1.2 IP地址与端口 15 1.2.1 TCP/IP网络协议 16 1.2.2 IPAddress类与Dns类 17 1.2.3 IPHostEntry类 17 1.2.4 IPEndPoint类 17 1.3 套接字 19 1.3.1 Socket类 20 1.3.2 面向连接的套接字 21 1.3.3 无连接的套接字 23 1.4 网络流 24 1.5 习题1 25 第2章 TCP应用编程 27 2.1 同步TCP应用编程 28 2.1.1 使用套接字发送接收数据 28 2.1.2 使用NetworkStream对象发送接收数据 30 2.1.3 TcpClient与TcpListener类 31 2.1.4 解决TCP协议的无消息边界问题 33 2.2 利用同步TCP编写网络游戏 34 2.2.1 服务器端编程 34 2.2.2 客户端编程 49 2.3 异步TCP应用编程 66 2.3.1 EventWaitHandle类 67 2.3.2 AsyncCallback委托 69 2.3.3 BeginAcceptTcpClient方法和EndAcceptTcpClient方法 70 2.3.4 BeginConnect方法和EndConnect方法 70 2.3.5 发送数据 71 2.3.6 接收数据 72 2.4 异步TCP聊天程序 73 2.4.1 服务器端设计 73 2.4.2 客户端设计 79 2.5 习题2 83 第3章 UDP应用编程 84 3.1 UDP协议基础知识 84 3.2 UDP应用编程技术 84 3.2.1 UdpClient类 84 3.2.2 发送接收数据的方法 86 3.3 利用UDP协议进行广播和组播 90 3.3.1 通过Internet实现群发功能 90 3.3.2 在Internet上举行网络会议讨论 96 3.4 习题3 101 第4章 P2P应用编程 102 4.1 P2P基础知识 102 4.2 P2P应用举例 104 4.3 习题4 114 第5章 SMTP与POP3应用编程 115 5.1 通过应用程序发送电子邮件 115 5.1.1 SMTP协议 115 5.1.2 发送邮件 116 5.2 利用同步TCP接收电子邮件 120 5.2.1 POP3工作原理 121 5.2.2 邮件接收处理 123 5.3 习题5 127 第6章 网络数据加密与解密 128 6.1 对称加密 128 6.2 不对称加密 133 6.3 通过网络传递加密数据 136 6.4 Hash算法与数字签名 152 6.5 习题6 153 第7章 三维设计与多媒体编程 154 7.1 简单的3D设计入门 154 7.2 DirectX基础知识 160 7.2.1 左手坐标系与右手坐标系 160 7.2.2 设备 160 7.2.3 顶点与顶点缓冲 161 7.2.4 Mesh对象 162 7.2.5 法线 162 7.2.6 纹理与纹理映射 162 7.2.7 世界矩阵、投影矩阵与视图矩阵 162 7.2.8 背面剔除 164 7.3 Primitive 164 7.4 Mesh 171 7.5 灯光与材质 177 7.6 音频与视频 187 7.7 直接使用SoundPlayer类播放WAV音频文件 191 7.8 习题7 193 第8章 上机实验指导 194 8.1 实验一 简单网络聊天系统 194 8.2 实验二 网络呼叫应答提醒系统 195 8.3 实验三 文件数据加密与解密 199

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧