mirror of
https://github.com/Facepunch/Facepunch.Steamworks.git
synced 2025-01-14 15:48:06 +03:00
Merge pull request #323 from HouraiTeahouse/master
Add unsafe overloads for SteamNetworking P2P send and recieve functions
This commit is contained in:
commit
5832c3ea82
@ -91,10 +91,10 @@ namespace Steamworks
|
|||||||
var buffer = Helpers.TakeBuffer( (int) size );
|
var buffer = Helpers.TakeBuffer( (int) size );
|
||||||
|
|
||||||
fixed ( byte* p = buffer )
|
fixed ( byte* p = buffer )
|
||||||
{
|
{
|
||||||
SteamId steamid = 1;
|
SteamId steamid = 1;
|
||||||
if ( !Internal.ReadP2PPacket( (IntPtr)p, (uint) buffer.Length, ref size, ref steamid, channel ) || size == 0 )
|
if ( !Internal.ReadP2PPacket( (IntPtr)p, (uint) buffer.Length, ref size, ref steamid, channel ) || size == 0 )
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
var data = new byte[size];
|
var data = new byte[size];
|
||||||
Array.Copy( buffer, 0, data, 0, size );
|
Array.Copy( buffer, 0, data, 0, size );
|
||||||
@ -104,7 +104,25 @@ namespace Steamworks
|
|||||||
SteamId = steamid,
|
SteamId = steamid,
|
||||||
Data = data
|
Data = data
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reads in a packet that has been sent from another user via SendP2PPacket..
|
||||||
|
/// </summary>
|
||||||
|
public unsafe static bool ReadP2PPacket( byte[] buffer, ref uint size, ref SteamId steamid, int channel = 0 )
|
||||||
|
{
|
||||||
|
fixed (byte* p = buffer) {
|
||||||
|
return Internal.ReadP2PPacket( (IntPtr)p, (uint)buffer.Length, ref size, ref steamid, channel );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reads in a packet that has been sent from another user via SendP2PPacket..
|
||||||
|
/// </summary>
|
||||||
|
public unsafe static bool ReadP2PPacket( byte* buffer, uint cbuf, ref uint size, ref SteamId steamid, int channel = 0 )
|
||||||
|
{
|
||||||
|
return Internal.ReadP2PPacket( (IntPtr)buffer, cbuf, ref size, ref steamid, channel );
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -123,6 +141,15 @@ namespace Steamworks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sends a P2P packet to the specified user.
|
||||||
|
/// This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections.
|
||||||
|
/// NOTE: The first packet send may be delayed as the NAT-traversal code runs.
|
||||||
|
/// </summary>
|
||||||
|
public static unsafe bool SendP2PPacket( SteamId steamid, byte* data, uint length, int nChannel = 1, P2PSend sendType = P2PSend.Reliable )
|
||||||
|
{
|
||||||
|
return Internal.SendP2PPacket( steamid, (IntPtr)data, (uint)length, (P2PSend)sendType, nChannel );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user