From 5d7e120d56873d91141695ddf7aebd88e4619dce Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Sat, 12 Jan 2008 01:35:25 +0000 Subject: Set svn:eol-style. --- .../Region/ScriptEngine/Common/TRPC/TCPClient.cs | 248 ++++++++++----------- .../Region/ScriptEngine/Common/TRPC/TCPCommon.cs | 64 +++--- .../Region/ScriptEngine/Common/TRPC/TCPServer.cs | 210 ++++++++--------- .../Region/ScriptEngine/Common/TRPC/TCPSocket.cs | 170 +++++++------- 4 files changed, 346 insertions(+), 346 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Common/TRPC') diff --git a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPClient.cs b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPClient.cs index e0a46c5..c176a08 100644 --- a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPClient.cs +++ b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPClient.cs @@ -1,125 +1,125 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Net; -using System.Net.Sockets; -using System.Text; - -namespace OpenSim.Region.ScriptEngine.Common.TRPC -{ - public class TCPClient : TCPCommon.ClientInterface - { - - public TCPClient() - { - } - private readonly Dictionary Clients = new Dictionary(); - private int ClientCount = 0; - - - public event TCPCommon.ClientConnectedDelegate ClientConnected; - public event TCPCommon.DataReceivedDelegate DataReceived; - public event TCPCommon.DataSentDelegate DataSent; - public event TCPCommon.CloseDelegate Close; - public event TCPCommon.ConnectErrorDelegate ConnectError; - - - /// - /// Creates client connection - /// - public void Connect(string RemoteHost, int RemotePort) - { - Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(RemoteHost), RemotePort); - //newsock.BeginConnect(ipe, new AsyncCallback(asyncConnected), newsock); - newsock.Connect(ipe); - } - public int ConnectAndReturnID(string RemoteHost, int RemotePort) - { - Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(RemoteHost), RemotePort); - //newsock.BeginConnect(ipe, new AsyncCallback(asyncConnected), newsock); - newsock.Connect(ipe); - return ProcessConnection(newsock); - } - - - public void Disconnect(int ID) - { - Clients[ID].Disconnect(); - } - - void asyncConnected(IAsyncResult iar) - { - Socket client = (Socket)iar.AsyncState; - client.EndConnect(iar); - ProcessConnection(client); - } - - private int ProcessConnection(Socket client) - { - try - { - - - - int id = ClientCount++; - TCPSocket S = new TCPSocket(id, client); - - // Add to dictionary - Clients.Add(id, S); - - // Add event handlers - S.Close += new TCPSocket.CloseDelegate(S_Close); - S.DataReceived += new TCPSocket.DataReceivedDelegate(S_DataReceived); - S.DataSent += new TCPSocket.DataSentDelegate(S_DataSent); - - // Start it - S.Start(); - - Debug.WriteLine("Connection established: " + client.RemoteEndPoint.ToString()); - - // Fire Connected-event - if (ClientConnected != null) - ClientConnected(id, client.RemoteEndPoint); - - return id; - } - catch (SocketException sex) - { - if (ConnectError != null) - ConnectError(sex.Message); - } - return -1; - } - - - - - void S_DataSent(int ID, int length) - { - if (DataSent != null) - DataSent(ID, length); - } - - void S_DataReceived(int ID, byte[] data, int offset, int length) - { - if (DataReceived != null) - DataReceived(ID, data, offset, length); - } - - void S_Close(int ID) - { - if (Close != null) - Close(ID); - Clients.Remove(ID); - } - - public void Send(int clientID, byte[] data, int offset, int len) - { - Clients[clientID].Send(clientID, data, offset, len); - } - - - } +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Net; +using System.Net.Sockets; +using System.Text; + +namespace OpenSim.Region.ScriptEngine.Common.TRPC +{ + public class TCPClient : TCPCommon.ClientInterface + { + + public TCPClient() + { + } + private readonly Dictionary Clients = new Dictionary(); + private int ClientCount = 0; + + + public event TCPCommon.ClientConnectedDelegate ClientConnected; + public event TCPCommon.DataReceivedDelegate DataReceived; + public event TCPCommon.DataSentDelegate DataSent; + public event TCPCommon.CloseDelegate Close; + public event TCPCommon.ConnectErrorDelegate ConnectError; + + + /// + /// Creates client connection + /// + public void Connect(string RemoteHost, int RemotePort) + { + Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(RemoteHost), RemotePort); + //newsock.BeginConnect(ipe, new AsyncCallback(asyncConnected), newsock); + newsock.Connect(ipe); + } + public int ConnectAndReturnID(string RemoteHost, int RemotePort) + { + Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(RemoteHost), RemotePort); + //newsock.BeginConnect(ipe, new AsyncCallback(asyncConnected), newsock); + newsock.Connect(ipe); + return ProcessConnection(newsock); + } + + + public void Disconnect(int ID) + { + Clients[ID].Disconnect(); + } + + void asyncConnected(IAsyncResult iar) + { + Socket client = (Socket)iar.AsyncState; + client.EndConnect(iar); + ProcessConnection(client); + } + + private int ProcessConnection(Socket client) + { + try + { + + + + int id = ClientCount++; + TCPSocket S = new TCPSocket(id, client); + + // Add to dictionary + Clients.Add(id, S); + + // Add event handlers + S.Close += new TCPSocket.CloseDelegate(S_Close); + S.DataReceived += new TCPSocket.DataReceivedDelegate(S_DataReceived); + S.DataSent += new TCPSocket.DataSentDelegate(S_DataSent); + + // Start it + S.Start(); + + Debug.WriteLine("Connection established: " + client.RemoteEndPoint.ToString()); + + // Fire Connected-event + if (ClientConnected != null) + ClientConnected(id, client.RemoteEndPoint); + + return id; + } + catch (SocketException sex) + { + if (ConnectError != null) + ConnectError(sex.Message); + } + return -1; + } + + + + + void S_DataSent(int ID, int length) + { + if (DataSent != null) + DataSent(ID, length); + } + + void S_DataReceived(int ID, byte[] data, int offset, int length) + { + if (DataReceived != null) + DataReceived(ID, data, offset, length); + } + + void S_Close(int ID) + { + if (Close != null) + Close(ID); + Clients.Remove(ID); + } + + public void Send(int clientID, byte[] data, int offset, int len) + { + Clients[clientID].Send(clientID, data, offset, len); + } + + + } } \ No newline at end of file diff --git a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPCommon.cs b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPCommon.cs index 83548b4..36a13e3 100644 --- a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPCommon.cs +++ b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPCommon.cs @@ -1,33 +1,33 @@ -namespace OpenSim.Region.ScriptEngine.Common.TRPC -{ - public class TCPCommon - { - public delegate void ClientConnectedDelegate(int ID, System.Net.EndPoint Remote); - public delegate void DataReceivedDelegate(int ID, byte[] data, int offset, int length); - public delegate void DataSentDelegate(int ID, int length); - public delegate void CloseDelegate(int ID); - public delegate void ConnectErrorDelegate(string Reason); - - - public interface ServerAndClientInterface - { - void Send(int clientID, byte[] data, int offset, int len); - event ClientConnectedDelegate ClientConnected; - event DataReceivedDelegate DataReceived; - event DataSentDelegate DataSent; - event CloseDelegate Close; - } - public interface ClientInterface : ServerAndClientInterface - { - event TCPCommon.ConnectErrorDelegate ConnectError; - void Connect(string RemoteHost, int RemotePort); - void Disconnect(int ID); - } - public interface ServerInterface : ServerAndClientInterface - { - void StartListen(); - void StopListen(); - } - - } +namespace OpenSim.Region.ScriptEngine.Common.TRPC +{ + public class TCPCommon + { + public delegate void ClientConnectedDelegate(int ID, System.Net.EndPoint Remote); + public delegate void DataReceivedDelegate(int ID, byte[] data, int offset, int length); + public delegate void DataSentDelegate(int ID, int length); + public delegate void CloseDelegate(int ID); + public delegate void ConnectErrorDelegate(string Reason); + + + public interface ServerAndClientInterface + { + void Send(int clientID, byte[] data, int offset, int len); + event ClientConnectedDelegate ClientConnected; + event DataReceivedDelegate DataReceived; + event DataSentDelegate DataSent; + event CloseDelegate Close; + } + public interface ClientInterface : ServerAndClientInterface + { + event TCPCommon.ConnectErrorDelegate ConnectError; + void Connect(string RemoteHost, int RemotePort); + void Disconnect(int ID); + } + public interface ServerInterface : ServerAndClientInterface + { + void StartListen(); + void StopListen(); + } + + } } \ No newline at end of file diff --git a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPServer.cs b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPServer.cs index 3af898a..0a85dc4 100644 --- a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPServer.cs +++ b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPServer.cs @@ -1,106 +1,106 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Net; -using System.Net.Sockets; -using TCPCommon=OpenSim.Region.ScriptEngine.Common.TRPC.TCPCommon; - -namespace OpenSim.Region.ScriptEngine.Common.TRPC -{ - public class TCPServer: TCPCommon.ServerInterface - { - public readonly int LocalPort; - public TCPServer(int localPort) - { - LocalPort = localPort; - } - - private Socket server; - - /// - /// Starts listening for new connections - /// - public void StartListen() - { - server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - IPEndPoint ipe = new IPEndPoint(IPAddress.Any, LocalPort); - server.Bind(ipe); - server.Listen(10); - server.BeginAccept(new AsyncCallback(AsyncAcceptConnections), server); - } - /// - /// Stops listening for new connections - /// - public void StopListen() - { - server.Close(); - server = null; - } - - private readonly Dictionary Clients = new Dictionary(); - private int ClientCount = 0; - - - public event TCPCommon.ClientConnectedDelegate ClientConnected; - public event TCPCommon.DataReceivedDelegate DataReceived; - public event TCPCommon.DataSentDelegate DataSent; - public event TCPCommon.CloseDelegate Close; - - /// - /// Async callback for new connections - /// - /// - private void AsyncAcceptConnections(IAsyncResult ar) - { - int id = ClientCount++; - Socket oldserver = (Socket)ar.AsyncState; - Socket client = oldserver.EndAccept(ar); - TCPSocket S = new TCPSocket(id, client); - - // Add to dictionary - Clients.Add(id, S); - - // Add event handlers - S.Close += new TCPSocket.CloseDelegate(S_Close); - S.DataReceived += new TCPSocket.DataReceivedDelegate(S_DataReceived); - S.DataSent += new TCPSocket.DataSentDelegate(S_DataSent); - - // Start it - S.Start(); - - Debug.WriteLine("Connection received: " + client.RemoteEndPoint.ToString()); - - // Fire Connected-event - if (ClientConnected != null) - ClientConnected(id, client.RemoteEndPoint); - - } - - void S_DataSent(int ID, int length) - { - if (DataSent != null) - DataSent(ID, length); - } - - void S_DataReceived(int ID, byte[] data, int offset, int length) - { - if (DataReceived != null) - DataReceived(ID, data, offset, length); - } - - void S_Close(int ID) - { - if (Close != null) - Close(ID); - Clients.Remove(ID); - } - - public void Send(int clientID, byte[] data, int offset, int len) - { - Clients[clientID].Send(clientID, data, offset, len); - } - - - - } +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Net; +using System.Net.Sockets; +using TCPCommon=OpenSim.Region.ScriptEngine.Common.TRPC.TCPCommon; + +namespace OpenSim.Region.ScriptEngine.Common.TRPC +{ + public class TCPServer: TCPCommon.ServerInterface + { + public readonly int LocalPort; + public TCPServer(int localPort) + { + LocalPort = localPort; + } + + private Socket server; + + /// + /// Starts listening for new connections + /// + public void StartListen() + { + server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPEndPoint ipe = new IPEndPoint(IPAddress.Any, LocalPort); + server.Bind(ipe); + server.Listen(10); + server.BeginAccept(new AsyncCallback(AsyncAcceptConnections), server); + } + /// + /// Stops listening for new connections + /// + public void StopListen() + { + server.Close(); + server = null; + } + + private readonly Dictionary Clients = new Dictionary(); + private int ClientCount = 0; + + + public event TCPCommon.ClientConnectedDelegate ClientConnected; + public event TCPCommon.DataReceivedDelegate DataReceived; + public event TCPCommon.DataSentDelegate DataSent; + public event TCPCommon.CloseDelegate Close; + + /// + /// Async callback for new connections + /// + /// + private void AsyncAcceptConnections(IAsyncResult ar) + { + int id = ClientCount++; + Socket oldserver = (Socket)ar.AsyncState; + Socket client = oldserver.EndAccept(ar); + TCPSocket S = new TCPSocket(id, client); + + // Add to dictionary + Clients.Add(id, S); + + // Add event handlers + S.Close += new TCPSocket.CloseDelegate(S_Close); + S.DataReceived += new TCPSocket.DataReceivedDelegate(S_DataReceived); + S.DataSent += new TCPSocket.DataSentDelegate(S_DataSent); + + // Start it + S.Start(); + + Debug.WriteLine("Connection received: " + client.RemoteEndPoint.ToString()); + + // Fire Connected-event + if (ClientConnected != null) + ClientConnected(id, client.RemoteEndPoint); + + } + + void S_DataSent(int ID, int length) + { + if (DataSent != null) + DataSent(ID, length); + } + + void S_DataReceived(int ID, byte[] data, int offset, int length) + { + if (DataReceived != null) + DataReceived(ID, data, offset, length); + } + + void S_Close(int ID) + { + if (Close != null) + Close(ID); + Clients.Remove(ID); + } + + public void Send(int clientID, byte[] data, int offset, int len) + { + Clients[clientID].Send(clientID, data, offset, len); + } + + + + } } \ No newline at end of file diff --git a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPSocket.cs b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPSocket.cs index 1079846..ce50a27 100644 --- a/OpenSim/Region/ScriptEngine/Common/TRPC/TCPSocket.cs +++ b/OpenSim/Region/ScriptEngine/Common/TRPC/TCPSocket.cs @@ -1,86 +1,86 @@ -using System; -using System.Net.Sockets; - -namespace OpenSim.Region.ScriptEngine.Common.TRPC -{ - public class TCPSocket - { - - public readonly Socket Client; - public readonly int ID; - - public delegate void DataReceivedDelegate(int ID, byte[] data, int offset, int length); - public delegate void DataSentDelegate(int ID, int length); - public delegate void CloseDelegate(int ID); - public event DataReceivedDelegate DataReceived; - public event DataSentDelegate DataSent; - public event CloseDelegate Close; - - private byte[] RecvQueue = new byte[4096]; - private int RecvQueueSize = 4096; - - public TCPSocket(int id, Socket client) - { - ID = id; - Client = client; - } - public void Start() - { - // Start listening - BeginReceive(); - } - - private void BeginReceive() - { - Client.BeginReceive(RecvQueue, 0, RecvQueueSize, SocketFlags.None, new AsyncCallback(asyncDataReceived), Client); - } - - /// - /// Callback for successful receive (or connection close) - /// - /// - private void asyncDataReceived(IAsyncResult ar) - { - Socket client = (Socket)ar.AsyncState; - int recv = client.EndReceive(ar); - - // Is connection closed? - if (recv == 0) - { - client.Close(); - Close(ID); - return; - } - - // Call receive event - DataReceived(ID, RecvQueue, 0, recv); - - // Start new receive - BeginReceive(); - - } - - - public void Send(int clientID, byte[] data, int offset, int len) - { - Client.BeginSend(data, offset, len, SocketFlags.None, new AsyncCallback(asyncDataSent), Client); - } - - /// - /// Callback for successful send - /// - /// - void asyncDataSent(IAsyncResult ar) - { - Socket client = (Socket)ar.AsyncState; - int sent = client.EndSend(ar); - DataSent(ID, sent); - } - - public void Disconnect() - { - Client.Close(); - Close(ID); - } - } +using System; +using System.Net.Sockets; + +namespace OpenSim.Region.ScriptEngine.Common.TRPC +{ + public class TCPSocket + { + + public readonly Socket Client; + public readonly int ID; + + public delegate void DataReceivedDelegate(int ID, byte[] data, int offset, int length); + public delegate void DataSentDelegate(int ID, int length); + public delegate void CloseDelegate(int ID); + public event DataReceivedDelegate DataReceived; + public event DataSentDelegate DataSent; + public event CloseDelegate Close; + + private byte[] RecvQueue = new byte[4096]; + private int RecvQueueSize = 4096; + + public TCPSocket(int id, Socket client) + { + ID = id; + Client = client; + } + public void Start() + { + // Start listening + BeginReceive(); + } + + private void BeginReceive() + { + Client.BeginReceive(RecvQueue, 0, RecvQueueSize, SocketFlags.None, new AsyncCallback(asyncDataReceived), Client); + } + + /// + /// Callback for successful receive (or connection close) + /// + /// + private void asyncDataReceived(IAsyncResult ar) + { + Socket client = (Socket)ar.AsyncState; + int recv = client.EndReceive(ar); + + // Is connection closed? + if (recv == 0) + { + client.Close(); + Close(ID); + return; + } + + // Call receive event + DataReceived(ID, RecvQueue, 0, recv); + + // Start new receive + BeginReceive(); + + } + + + public void Send(int clientID, byte[] data, int offset, int len) + { + Client.BeginSend(data, offset, len, SocketFlags.None, new AsyncCallback(asyncDataSent), Client); + } + + /// + /// Callback for successful send + /// + /// + void asyncDataSent(IAsyncResult ar) + { + Socket client = (Socket)ar.AsyncState; + int sent = client.EndSend(ar); + DataSent(ID, sent); + } + + public void Disconnect() + { + Client.Close(); + Close(ID); + } + } } \ No newline at end of file -- cgit v1.1