C# TCP socket發送大數據包時,接收端和發送端數據不一致 服務端接收Receive不完全
服務器端:
port為監聽端口
byte[] bs 一般聲明一個較大的數組接收
int ilen 為接收到的數據包長度,根據它從byte[] bs里截取就好
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port); Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); listener.Bind(localEndPoint); listener.Listen(30); while (true) { Socket sock = listener.Accept(); byte[] bs = new byte[1024*1024]; int ilen = sock.Receive(bs); }
客戶端:
很簡單,連接成功后發送數據就好。
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(ip), iPort);//IP和端口 Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sock.Connect(ipep); sock.Send(Sendbytes, Sendbytes.Length, SocketFlags.None);//發送信息