客户端代码

[Serializable] // 表示该类可以被序列化
class Person
{
public string name;

public void HI()
{
Debug.Log(name);
}
}

public class NewSocketClient : MonoBehaviour {

void Start () {

Person p = new Person();
p.name = "Lz";
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPEndPoint point = new IPEndPoint(IPAddress.Parse("10.6.0.78"), 5684);
BinaryFormatter bf = new BinaryFormatter(); //创建序列化对象
client.Connect(point); //连接服务器

MemoryStream ms = new MemoryStream(); //创建内存流对象
bf.Serialize(ms, p); //将p序列化到内存流中

client.Send(ms.GetBuffer(),(int)ms.Length,SocketFlags.None);// 发送,长度为内存流中数据的长度

}
}

服务器代码

[Serializable] // 表示该类可以被序列化
class Person
{
public string name;

public void HI()
{
Debug.Log(name);
}
}

public class NewSocketServer : MonoBehaviour
{

Socket server_Socket;

void Start()
{
server_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPEndPoint point = new IPEndPoint(IPAddress.Any, 5684);

server_Socket.Bind(point);

server_Socket.Listen(10);

Thread acThread = new Thread(AcThread);

acThread.Start();
}

void AcThread()
{

Socket clientSocket = server_Socket.Accept(); //等待客户端连接

byte[] buffer = new byte[1024 * 1024];

int len = clientSocket.Receive(buffer);

MemoryStream memory = new MemoryStream();

BinaryFormatter bf = new BinaryFormatter();

memory.Write(buffer, 0, len);
memory.Flush();
memory.Position = 0;

Person p = bf.Deserialize(memory) as Person;
p.HI();

}

}

使用Socket对序列化数据进行传输(基于C#)的更多相关文章

  1. 基于QTcpSocket和QTcpServer的Tcp通讯以及QDataStream序列化数据

    最近要在QT下开发Tcp通讯,发送序列化数据以便于接收. 这里涉及到几个问题: 1.QTcpSocket.QTcpServer的通讯 2.QDataStream序列化数据 多的不说,直接上干货!!! ...

  2. Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信

    Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信 背景 上一讲我们介绍了网络编程的一些概念.socket的网络编程的有关概念 这一讲我们来看UDP 通信. 知识 U ...

  3. 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结

    引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...

  4. 网络TCp数据的传输设计(黏包处理)

    //1.该片为引用别人的文章:http://www.cnblogs.com/alon/archive/2009/04/16/1437599.html 解决TCP网络传输"粘包"问题 ...

  5. Socket简单实现数据交互及上传

    声明:本文为原创,如需转载请说明出处:http://www.cnblogs.com/gudu1/p/7669175.html 首先为什么要写这个呢?因为在几个月之前我还使用Socket做一个小项目,而 ...

  6. Linux 系统编程 学习:008-基于socket的网络编程3:基于 TCP 的通信

    背景 上一讲我们介绍了 基于UDP 的通信 这一讲我们来看 TCP 通信. 知识 TCP(Transmission Control Protoco 传输控制协议). TCP是一种面向广域网的通信协议, ...

  7. C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  8. 解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接

    开发中所用的数据需要通过WCF进行数据传输,结果就遇到了WCF大量传输问题 也就是提示System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接 网上解决 ...

  9. read/write数据读写传输方式(转)

    前言 笔者本打算撰写一篇讲解标准I/O(缓存I/O)的博文,但是发现已经有网友做过同样的工作,并且工作质量上乘,特转载于此. 原文地址http://lenky.info/archives/2012/0 ...

随机推荐

  1. error: stray '\357' in program编程出错的总结

    错误: 编译报错:error: stray '\357' in program 原因:在程序中打入了全角字符   具体分析产生原因: 在编程中,由于打字的快速,按下ctrl键后紧接着按下了space键 ...

  2. 爬取知名社区技术文章_setting_5

    # -*- coding: utf-8 -*- # Scrapy settings for JobBole project # # For simplicity, this file contains ...

  3. jquery取前、后、父、子元素

    前.prev(); 后.next(); 父.parent(); 子.children(); 注意:前的前是.prev().prev(),例如前元素无i,但前的前的i元素有i,不能写成.prev('i' ...

  4. JDBC (五)

    1 使用dbutils进行一对多.多对多的开发 1.1 准备 mysql驱动的pom.xml <!-- https://mvnrepository.com/artifact/mysql/mysq ...

  5. jdk源码->多线程->Thread

    线程的创建 java提供了三种创建线程的方法: 通过继承 Thread 类本身: 通过实现 Runnable 接口: 通过 Callable 和 Future 创建线程. 继承Thread类 步骤: ...

  6. 浅谈ASP.NET配置文件加密

    在刚刚完成的一个ASP.NET项目中,遇到了这么一个问题,项目部署到生产环境中时,领导要求项目中的配置文件(如web.config,app.config)中不能出现敏感字符,如:数据库连接,等等. 第 ...

  7. wpf timePicker 时间选择控件

    wpf里有日期选择控件,但没有时间选择控件.其他地方也有类似的,但效果并不太好,而且复杂.所以就自己写了个.参考codeproject上的. 分两部分. 第一部分是.cs文件.也就是control控件 ...

  8. 安装phpredis-master步骤备忘

    下载软件包下载地址: http://pan.baidu.com/s/1i37R8TB 解包 tar -zxvf phpredis-master.tar.gz cd phpredis-master /o ...

  9. ABP官方文档翻译 3.3 仓储

     仓储 默认仓储 自定义仓储 自定义仓储接口 自定义仓储实现 基础仓储方法管理数据库连接 查询 获取单个实体 获取实体列表 关于IQueryable 自定义返回值 插入 更新 删除 其他 关于异步方法 ...

  10. 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例[转]

    原文链接:http://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653160642&idx=1&sn=608f4e6883 ...