@@ -513,7 +513,13 @@ internal void Send(int clientId, string messageType, string channelName, byte[]
513
513
//Client trying to send data to host
514
514
clientId = serverClientId ;
515
515
}
516
- using ( MemoryStream stream = new MemoryStream ( ) )
516
+ //2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
517
+ int sizeOfStream = 5 ;
518
+ if ( networkId != null )
519
+ sizeOfStream += 4 ;
520
+ sizeOfStream += data . Length ;
521
+
522
+ using ( MemoryStream stream = new MemoryStream ( sizeOfStream ) )
517
523
{
518
524
using ( BinaryWriter writer = new BinaryWriter ( stream ) )
519
525
{
@@ -524,14 +530,19 @@ internal void Send(int clientId, string messageType, string channelName, byte[]
524
530
writer . Write ( ( ushort ) data . Length ) ;
525
531
writer . Write ( data ) ;
526
532
}
527
- byte [ ] dataToSend = stream . ToArray ( ) ;
528
- NetworkTransport . Send ( hostId , clientId , MessageManager . channels [ channelName ] , dataToSend , dataToSend . Length , out error ) ;
533
+ NetworkTransport . Send ( hostId , clientId , MessageManager . channels [ channelName ] , stream . GetBuffer ( ) , sizeOfStream , out error ) ;
529
534
}
530
535
}
531
536
532
537
internal void Send ( int [ ] clientIds , string messageType , string channelName , byte [ ] data , uint ? networkId = null )
533
538
{
534
- using ( MemoryStream stream = new MemoryStream ( ) )
539
+ //2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
540
+ int sizeOfStream = 5 ;
541
+ if ( networkId != null )
542
+ sizeOfStream += 4 ;
543
+ sizeOfStream += data . Length ;
544
+
545
+ using ( MemoryStream stream = new MemoryStream ( sizeOfStream ) )
535
546
{
536
547
using ( BinaryWriter writer = new BinaryWriter ( stream ) )
537
548
{
@@ -542,7 +553,6 @@ internal void Send(int[] clientIds, string messageType, string channelName, byte
542
553
writer . Write ( ( ushort ) data . Length ) ;
543
554
writer . Write ( data ) ;
544
555
}
545
- byte [ ] dataToSend = stream . ToArray ( ) ;
546
556
int channel = MessageManager . channels [ channelName ] ;
547
557
for ( int i = 0 ; i < clientIds . Length ; i ++ )
548
558
{
@@ -560,14 +570,20 @@ internal void Send(int[] clientIds, string messageType, string channelName, byte
560
570
//Client trying to send data to host
561
571
clientId = serverClientId ;
562
572
}
563
- NetworkTransport . Send ( hostId , clientId , channel , dataToSend , dataToSend . Length , out error ) ;
573
+ NetworkTransport . Send ( hostId , clientId , channel , stream . GetBuffer ( ) , sizeOfStream , out error ) ;
564
574
}
565
575
}
566
576
}
567
577
568
578
internal void Send ( List < int > clientIds , string messageType , string channelName , byte [ ] data , uint ? networkId = null )
569
579
{
570
- using ( MemoryStream stream = new MemoryStream ( ) )
580
+ //2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
581
+ int sizeOfStream = 5 ;
582
+ if ( networkId != null )
583
+ sizeOfStream += 4 ;
584
+ sizeOfStream += data . Length ;
585
+
586
+ using ( MemoryStream stream = new MemoryStream ( sizeOfStream ) )
571
587
{
572
588
using ( BinaryWriter writer = new BinaryWriter ( stream ) )
573
589
{
@@ -578,7 +594,6 @@ internal void Send(List<int> clientIds, string messageType, string channelName,
578
594
writer . Write ( ( ushort ) data . Length ) ;
579
595
writer . Write ( data ) ;
580
596
}
581
- byte [ ] dataToSend = stream . ToArray ( ) ;
582
597
int channel = MessageManager . channels [ channelName ] ;
583
598
for ( int i = 0 ; i < clientIds . Count ; i ++ )
584
599
{
@@ -596,14 +611,20 @@ internal void Send(List<int> clientIds, string messageType, string channelName,
596
611
//Client trying to send data to host
597
612
clientId = serverClientId ;
598
613
}
599
- NetworkTransport . Send ( hostId , clientId , channel , dataToSend , dataToSend . Length , out error ) ;
614
+ NetworkTransport . Send ( hostId , clientId , channel , stream . GetBuffer ( ) , sizeOfStream , out error ) ;
600
615
}
601
616
}
602
617
}
603
618
604
619
internal void Send ( string messageType , string channelName , byte [ ] data , uint ? networkId = null )
605
620
{
606
- using ( MemoryStream stream = new MemoryStream ( ) )
621
+ //2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
622
+ int sizeOfStream = 5 ;
623
+ if ( networkId != null )
624
+ sizeOfStream += 4 ;
625
+ sizeOfStream += data . Length ;
626
+
627
+ using ( MemoryStream stream = new MemoryStream ( sizeOfStream ) )
607
628
{
608
629
using ( BinaryWriter writer = new BinaryWriter ( stream ) )
609
630
{
@@ -614,7 +635,6 @@ internal void Send(string messageType, string channelName, byte[] data, uint? ne
614
635
writer . Write ( ( ushort ) data . Length ) ;
615
636
writer . Write ( data ) ;
616
637
}
617
- byte [ ] dataToSend = stream . ToArray ( ) ;
618
638
int channel = MessageManager . channels [ channelName ] ;
619
639
foreach ( KeyValuePair < int , NetworkedClient > pair in connectedClients )
620
640
{
@@ -632,15 +652,21 @@ internal void Send(string messageType, string channelName, byte[] data, uint? ne
632
652
//Client trying to send data to host
633
653
clientId = serverClientId ;
634
654
}
635
- NetworkTransport . Send ( hostId , clientId , channel , dataToSend , dataToSend . Length , out error ) ;
655
+ NetworkTransport . Send ( hostId , clientId , channel , stream . GetBuffer ( ) , sizeOfStream , out error ) ;
636
656
637
657
}
638
658
}
639
659
}
640
660
641
661
internal void Send ( string messageType , string channelName , byte [ ] data , int clientIdToIgnore , uint ? networkId = null )
642
662
{
643
- using ( MemoryStream stream = new MemoryStream ( ) )
663
+ //2 bytes for messageType, 2 bytes for buffer length and one byte for target bool
664
+ int sizeOfStream = 5 ;
665
+ if ( networkId != null )
666
+ sizeOfStream += 4 ;
667
+ sizeOfStream += data . Length ;
668
+
669
+ using ( MemoryStream stream = new MemoryStream ( sizeOfStream ) )
644
670
{
645
671
using ( BinaryWriter writer = new BinaryWriter ( stream ) )
646
672
{
@@ -651,7 +677,6 @@ internal void Send(string messageType, string channelName, byte[] data, int clie
651
677
writer . Write ( ( ushort ) data . Length ) ;
652
678
writer . Write ( data ) ;
653
679
}
654
- byte [ ] dataToSend = stream . ToArray ( ) ;
655
680
int channel = MessageManager . channels [ channelName ] ;
656
681
foreach ( KeyValuePair < int , NetworkedClient > pair in connectedClients )
657
682
{
@@ -671,7 +696,7 @@ internal void Send(string messageType, string channelName, byte[] data, int clie
671
696
//Client trying to send data to host
672
697
clientId = serverClientId ;
673
698
}
674
- NetworkTransport . Send ( hostId , clientId , channel , dataToSend , dataToSend . Length , out error ) ;
699
+ NetworkTransport . Send ( hostId , clientId , channel , stream . GetBuffer ( ) , sizeOfStream , out error ) ;
675
700
}
676
701
}
677
702
}
0 commit comments