MSDN 上也有个关于 Socket 通信的简单例子。我这是从那上面搬过来的。不过改来改去就变得跟原来的差得不少了。我觉得比 MSDN 上的例子会更好一点。因为可以自己定义要传送的数据类型,只要要传送的数据是可以序列化的。

我把程序分成两大块:PostOffice,Package。PostOffice 实现收发功能,相当于邮局。Package 包含了这个包的类型和包里面要传送的数据。

Package 类的定义:
简单 Socket 通信using System;
简单 Socket 通信
using System.Collections.Generic;
简单 Socket 通信
using System.Text;
简单 Socket 通信
using System.Net;
简单 Socket 通信
using System.Net.Sockets;
简单 Socket 通信
using System.IO;
简单 Socket 通信
using System.Runtime.Serialization.Formatters.Binary;
简单 Socket 通信
简单 Socket 通信
namespace TalkDemo.Core

PackageType 枚举的定义:
简单 Socket 通信namespace TalkDemo.Core
}

简单 Socket 通信using System;
简单 Socket 通信
using System.Collections.Generic;
简单 Socket 通信
using System.Text;
简单 Socket 通信
简单 Socket 通信
namespace TalkDemo.Core
}


PostOffice 的定义:
简单 Socket 通信using System;
简单 Socket 通信
using System.Collections.Generic;
简单 Socket 通信
using System.Text;
简单 Socket 通信
using System.Net.Sockets;
简单 Socket 通信
using System.IO;
简单 Socket 通信
using System.Net;
简单 Socket 通信
using System.Threading;
简单 Socket 通信
简单 Socket 通信
namespace TalkDemo.Core

可以看出来,这里发送是同步的,但接收是异步的。这个程序也算是个怪胎了!@#@#¥#,不过全当练习了。

有了这个通信的核心,就可以做个简单的双向通信程序了。
简单 Socket 通信using System;
简单 Socket 通信
using System.Collections.Generic;
简单 Socket 通信
using System.Text;
简单 Socket 通信
using TalkDemo.Core;
简单 Socket 通信
using System.Net;
简单 Socket 通信
简单 Socket 通信
namespace TalkTest.Ui

相关文章:

  • 2022-12-23
  • 2021-11-11
  • 2021-08-25
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-17
  • 2021-09-26
  • 2021-12-12
  • 2022-02-04
  • 2022-12-23
  • 2021-10-19
相关资源
相似解决方案