解决C#Socket粘包
前言
最近在做一款辅助,需一对多进程间通讯(所有游戏脚本由同一个控制台控制),WM_COPYDATA效率太低,故采用Socket通讯。
作为一个没接触过Socket编程的小白,好不容易写(抄)好代码,一测试,根本得不到有用的数据。调试发现多个数据包连一块了,找遍全网,要么对新手不友好看不懂,要么第三方库,干脆自己写一个,直接上代码。
Thread recvThread = new Thread((object obj) =>
{
try
{
//所有数据包都存buf里
List<byte> buf = new List<byte>();
while (true)
{
Socket socket = obj as Socket;
byte[] data = new byte[1024];
//dll端发送最大1024字节,所以接收也是1024
int len = socket.Receive(data)