Unity Server does not execute commands from client
I am working on a very simple / basic client / server networking program, the foundation for a future game that I hope to create. The client program / project now successfully connects to the "server program / project" (both are completely separate). However, when it comes to the client sending the request / command to the server. Well, it doesn't send the command to the server, it executes it on the client.
I read about changing inheritance from "Monodevelop" to "NetworkBehaviour" so I did this and it resulted in an error along the lines:
Command xxx was sent to the server
...Debug.logerror(object
So I seem to have gotten half way, it supposedly sent a command to the server, but the server didn't do anything with it. I do not know why.
Below are the relatively short programs I have for my server and client, and they are pretty much the same, but if anyone can help me I would really appreciate as my university course didn't really get on the Net Programming all this;
Server code
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class server : MonoBehaviour
{
public string IP = "127.0.0.1";
public int port = 25001;
public int prevConns = 0;
private int currConns = 0;
public virtual void OnServerReady (NetworkConnection conn)
{
NetworkServer.SetClientReady (conn);
}
void OnGUI ()
{
if (Network.peerType == NetworkPeerType.Disconnected) {
if (GUI.Button (new Rect (100, 100, 100, 25), "Start Client")) {
Network.Connect (IP, port);
}
if (GUI.Button (new Rect (100, 125, 100, 25), "Start Server")) {
Network.InitializeServer (20, port, false);
}
} else {
//CLIENT - NOT NEEDED
if (Network.peerType == NetworkPeerType.Client) {
GUI.Label (new Rect (100, 100, 100, 25), "Client");
if (GUI.Button (new Rect (100, 125, 100, 25), "Disconnect")) {
Network.Disconnect (250);
}
}
if (Network.peerType == NetworkPeerType.Server) {
currConns = Network.connections.Length;
GUI.Label (new Rect (100, 100, 100, 25), "Server");
GUI.Label (new Rect (100, 125, 100, 25), "Connections: " + currConns);
if (prevConns != currConns) {
if (prevConns < currConns) {
Debug.Log ("NEW CONNECTION");
prevConns++;
} else if (prevConns > currConns) {
Debug.Log ("Lost CONNECTION");
prevConns--;
}
}
if (GUI.Button (new Rect (100, 15, 100, 25), "Shutdown")) {
Network.Disconnect (250);
}
}
}
}
}
Client code
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class connection : MonoBehaviour
{
public string IP = "127.0.0.1";
public int port = 25001;
public GameObject player;
public virtual void OnClientConnect (NetworkConnection conn)
{
ClientScene.Ready (conn);
}
void OnGUI ()
{
if (Network.peerType == NetworkPeerType.Disconnected) {
if (GUI.Button (new Rect (100, 100, 100, 25), "Start Client")) {
Network.Connect (IP, port);
}
} else {
if (Network.peerType == NetworkPeerType.Client) {
GUI.Label (new Rect (100, 100, 100, 25), "Client");
if (GUI.Button (new Rect (100, 125, 100, 25), "Disconnect")) {
Network.Disconnect (250);
}
if (GUI.Button (new Rect (100, 150, 100, 25), "Send Cmd")) {
CmdSendCommand ();
}
}
}
}
[Command]
void CmdSendCommand ()
{
NetworkBehaviour.print ("HELLO");
}
}
source to share
No one has answered this question yet
Check out similar questions: