// Start is called before the first frame update public void Start() { mReturnBuffer = new byte[1024]; mSendBuffer = new byte[1024]; mStringBuffer = new char[1024]; //ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); //mSourceIPAddress = ipHostInfo.AddressList[0]; mSourceIPAddress = IPAddress.Parse(mSourceIP);//IPAddress.Any;// mRemoteEndPoint = new IPEndPoint(mSourceIPAddress, mPort); mSendByteCounter = sizeof(short);//Have to reserve two bytes at the beginning of mSendBuffer for the controls count. Debug.Log("Starting dataSource! sourceIPAddress " + mSourceIPAddress.ToString() + " remoteEndPoint " + mRemoteEndPoint.ToString()); //mWorkSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //Note: ListenSocket unnecessary if !mServer and !mAlternating //mListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); if (mServer) { mListening = true; mServerStage = serverConnectStage.NoServerSocket; } else { mListening = false; mClientStage = clientConnectStage.NoClientSocket; } }
public void acceptConnection() { mPacketCount = 0; Debug.Log("SERVER acceptConnection..."); mListenSocket.BeginAccept(new AsyncCallback(AcceptCallback), mListenSocket); mServerStage = serverConnectStage.ServerSocketAccepted; }
/* * void openListenSocket() * { * //if (mListenSocket.Connected == false) * //{ * Debug.Log("LISTEN SOCKET attempting to bind..."); * mListenSocket.Bind(mRemoteEndPoint); * mListenSocket.Listen(10); * Debug.Log("Listen socket connected? " + mListenSocket.Connected.ToString()); * //} * }*/ public void createListenSocket() { Debug.Log("SERVER createListenSocket..."); mListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //mListenSocket.Blocking = false; if (mListenSocket != null) { mServerStage = serverConnectStage.ServerSocketCreated; } }
public void receivePacket() { Debug.Log("SERVER receivePacket..."); if (mWorkSocket.Connected) { int bytes = mWorkSocket.Receive(mReturnBuffer, 1024, 0); if (bytes > 0) { mServerStage = serverConnectStage.PacketReceived; } } }
public void tick() { if (mServer) { switch (mServerStage) { case serverConnectStage.NoServerSocket: createListenSocket(); break; case serverConnectStage.ServerSocketCreated: bindListenSocket(); break; case serverConnectStage.ServerSocketBound: connectListenSocket(); break; case serverConnectStage.ServerSocketListening: acceptConnection(); break; case serverConnectStage.ServerSocketAccepted: receivePacket(); break; case serverConnectStage.PacketReceived: readPacket(); break; case serverConnectStage.PacketRead: mServerStage = serverConnectStage.ServerSocketListening; break; } } else { Debug.Log("Client dataSource stage: " + mClientStage.ToString()); switch (mClientStage) { case clientConnectStage.NoClientSocket: connectSendSocket(); break; case clientConnectStage.ClientSocketCreated: break; case clientConnectStage.ClientSocketConnected: sendPacket(); break; case clientConnectStage.PacketSent: mClientStage = clientConnectStage.ClientSocketConnected; //mCurrentTick = 501;//FIX: cheap hack to get us out of main loop in main.cpp break; } } mCurrentTick++; }
public void bindListenSocket() { Debug.Log("SERVER bindListenSocket..."); try { mListenSocket.Connect(mRemoteEndPoint); mServerStage = serverConnectStage.ServerSocketBound; } catch (Exception e) { Debug.Log("bindListenSocket ERROR: " + e.ToString()); } }
public dataSource(bool server) { Debug.Log("Datasource constructor!!!"); mServerStage = serverConnectStage.NoServerSocket; mClientStage = clientConnectStage.NoClientSocket; mServer = server; if (server) { mServer = true; mListening = true; } }
public void readPacket() { Debug.Log("SERVER readPacket..."); short opcode, controlCount;//,packetCount; controlCount = readShort(); for (short i = 0; i < controlCount; i++) { opcode = readShort(); if (opcode == OPCODE_BASE) { //// keep contact, but no request ///////////////////////// handleBaseRequest(); }// else if (opcode==22) { // send us some number of packets after this one // packetCount = readShort(); // if ((packetCount>0)&&(packetCount<=mMaxPackets)) // mPacketCount = packetCount; //} } clearReturnPacket(); mServerStage = serverConnectStage.PacketRead; }
public void connectListenSocket() { Debug.Log("SERVER connectListenSocket..."); mListenSocket.Listen(100); mServerStage = serverConnectStage.ServerSocketListening; }