-
Notifications
You must be signed in to change notification settings - Fork 6
Getting Started
BlueSquid1 edited this page Mar 25, 2017
·
2 revisions
int portNum = 8080;
TransportManager transMgr = new TransportManager(portNum);
transMgr.MsgReceived += (object sender, MsgReceivedEventArgs e) =>
{
byte[] binaryMsg = e.Message;
string receivedMsg = Encoding.ASCII.GetString(binaryMsg);
Console.WriteLine("Received message = " + receivedMsg + " from ip = " + e.RemoteIp + " (" + e.BindingType + ")");
};
await transMgr.StartAsync();byte[] msgBits = Encoding.ASCII.GetBytes("Hello World");
string targetIP = "255.255.255.255"; //broadcast on local network
await transMgr.SendAsyncUDP(targetIP, msgBits);byte[] msgBits = Encoding.ASCII.GetBytes("Hello World");
string targetIP = "xxxx.xxxx.xxxx.xxxx"; //replace with a valid ip address
await transMgr.SendAsyncTCP(targetIP, msgBits);The above examples assume you already know the local ip address of the other peers. A UDP broadcast can be used to make a peer visible by other listening peers.
//new peers will trigger a peer change event
transMgr.PeerChange += (object sender, PeerChangeEventArgs e) =>
{
List<Peer> knownPeers = e.Peers;
foreach(Peer peer in knownPeers)
{
Console.WriteLine("peer's ip address = " + peer.IpAddress);
}
};
await transMgr.StartAsync();
//when ready send a broadcast message
byte[] broadcastMsg = Encoding.ASCII.GetBytes("Hello everyone.");
await transMgr.SendBroadcastAsyncUDP(broadcastMsg);public class Dog
{
public string Name { get; set; }
public Dog(string dogName)
{
this.Name = dogName;
}
}
public class Cat
{
public string Name { get; set; }
public Cat(string catName)
{
this.Name = catName;
}
}
ObjectManager ObjMgr = new ObjectManager(portNum);
ObjMgr.ObjReceived += (object sender, P2PNET.ObjectLayer.EventArgs.ObjReceivedEventArgs e) =>
{
Metadata metadata = e.Meta;
switch(metadata.ObjectType)
{
case "Dog":
Dog receivedDog = e.Obj.GetObject<Dog>();
//proccess dog here
break;
case "Cat":
Cat receivedCat = e.Obj.GetObject<Cat>();
//proccess cat here
break;
default:
Console.WriteLine("uknown received object type");
break;
}
};
await transMgr.StartAsync();
//when ready send the object
string targetIp = "xxxx.xxxx.xxxx.xxxx"; //replace with the ip address you want to send to
Dog dog = new Dog("Phillip");
await ObjMgr.SendAsyncTCP(targetIp, dog);