.Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1[使用IE浏览本页]
来源:互联网 发布:加班记录软件 编辑:程序博客网 时间:2024/06/05 06:48
直接使用Socket做服务器端和客户端,采用Tcp协议:
客户端代码:
示范代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net.Sockets;using TcpLabCommon;using System.Runtime.Serialization.Json;namespace TcpLabClient1{ class Program { static void Main(string[] args) { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect("127.0.0.1", 6000); NetworkStream netStream = new NetworkStream(socket); NetPacketService packetSvr = new NetPacketTcpService(netStream); for (int i = 0; i < 10; i++) { packetSvr.SendObject(new Book { Title = "Java编程思想_" + i, Price = i + 1 }); packetSvr.SendText("jiang_" + i); } packetSvr.SendFile(@"E:\WorkSpace\VCLabProjects\TcpLabSpace.zip"); Console.ReadLine(); } }}
服务器端代码:
示范代码using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Net.Sockets;using System.Net;using TcpLabCommon;using System.IO;using System.Text;namespace TcpLabSvr1{ class Program { static void Main() { Socket serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"),6000); serverSocket.Bind(endPoint); serverSocket.Listen(3); Socket clientSocket = serverSocket.Accept(); NetworkStream netStream = new NetworkStream(clientSocket); NetPacketService packetSvr = new NetPacketTcpService(netStream); do{ NetPacket packet = packetSvr.ReceivePacket(); switch (packet.PacketHead.PType) { case PacketType.STRING: Console.WriteLine(Convert.ToString(packet.Data)); break; case PacketType.BINARY: NetFile f = packetSvr.ParseFile((Byte[])packet.Data); Console.WriteLine("成功接收文件:"+f.FileName); FileStream fs = new FileStream(f.FileName,FileMode.Create); fs.Write(f.Content, 0, f.Content.Length); fs.Flush(); fs.Close(); break; case PacketType.COMPLEX: Book book = packet.Data as Book; Console.WriteLine(book.Title+"\t"+book.Price); break; default: break; } }while(true); } }}
//-------------------------------------------------------------------------------------------------------------------------------
使用TcpListener做服务器端、TcpClient做客户端:
客户端代码:
示范代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net.Sockets;using TcpLabCommon;namespace TcpLabClient2{ /// <summary> /// 客户端使用TcpClient /// </summary> class Program { static void Main(string[] args) { TcpClient client = new TcpClient("127.0.0.1",6000); NetworkStream netStream = client.GetStream(); NetPacketService packetSvr = new NetPacketTcpService(netStream); for (int i = 0; i < 10; i++) { packetSvr.SendObject(new Book { Title = "Java编程思想_" + i, Price = i + 1 }); packetSvr.SendText("jiang_" + i); } packetSvr.SendText("测试一下1"); packetSvr.SendText("测试一下2"); packetSvr.SendText("测试一下3"); packetSvr.SendFile(@"E:\简单工厂参考.txt"); Console.ReadLine(); } }}
服务端代码:
示范代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;using TcpLabCommon;using System.IO;namespace TcpLabSvr2{ /// <summary> /// 服务器端使用TcpListener /// </summary> class Program { static void Main(string[] args) { TcpListener svrListen = new TcpListener(IPAddress.Parse("127.0.0.1"),6000); svrListen.Start(3); TcpClient client = svrListen.AcceptTcpClient(); NetworkStream netStream = client.GetStream(); NetPacketService packetSvr = new NetPacketTcpService(netStream); do { NetPacket packet = packetSvr.ReceivePacket(); switch (packet.PacketHead.PType) { case PacketType.STRING: Console.WriteLine(packet.Data.ToString()); break; case PacketType.BINARY: NetFile f = packetSvr.ParseFile((Byte[])packet.Data); Console.WriteLine("成功接收文件:" + f.FileName); FileStream fs = new FileStream(f.FileName, FileMode.Create); fs.Write(f.Content, 0, f.Content.Length); fs.Flush(); fs.Close(); break; case PacketType.COMPLEX: Book book = packet.Data as Book; Console.WriteLine(book.Title + "\t" + book.Price); break; default: break; } } while (true); } }}
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1[使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务2[使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务3[聊天室][使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务4[聊天室][使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--类设计1[使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--类设计2[使用IE浏览本页]
- Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--前面6篇博文全部源代码下载地址
- Socket编程实现文件的传输II(封装)
- 使用Socket实现文件的传输
- 在C#中使用异步Socket编程实现TCP网络服务
- Socket同时使用ObjectInputStream和ObjectOutputStream传输序列化对象时的顺序
- Socket同时使用ObjectInputStream和ObjectOutputStream传输序列化对象时的顺序
- Socket同时使用ObjectInputStream和ObjectOutputStream传输序列化对象时的顺序
- Beetle使用Protobuf.net进行对象序列化传输
- C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- VC++使用Socket网络编程传输文件
- Linux 32位向64位移植的一些问题及解决
- C++ 函数覆盖和隐藏
- linux网络编程常用函数详解与实例(socket-->bind-->listen-->accept)
- C# 如何创建一个文件夹
- CentOS安装JDK
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1[使用IE浏览本页]
- 301重定向【鸡蛋】
- Js_函数声明
- 一起学Windows Phone7开发系列课程
- js技巧收集(200多个)
- Ubuntu Linux 查看、编辑、比较二进制文件
- Java中extends 和implements的区别
- 黑马程序员_逻辑与和逻辑或的短路问题:
- 给网站加上gzip (适用xampp/apache)