i m making a Multiplayer Chat Server when i hit play nothing shoing not in the console not in the game
client class using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Net.Sockets; using UnityEngine; using UnityEngine.UI;
public class Client : MonoBehaviour {
public GameObject Messageprefabs;
public GameObject chatcontainairs;
private bool SocketReady;
private TcpClient Socket;
private NetworkStream Stream;
private StreamWriter writer;
private StreamReader reader;
public void ConnectedToServer()
{
if(SocketReady)
{
return;
string host = "127.0.0.1";
int port = 6321;
string h;
int p;
h = GameObject.Find("HostInput").GetComponent<InputField>().text;
if (h != "")
host = h;
int.TryParse(GameObject.Find("PortInput").GetComponent<InputField>().text, out p);
if (p != 0)
port = p;
try
{
Socket = new TcpClient(host, port);
Stream = Socket.GetStream();
writer = new StreamWriter(Stream);
reader = new StreamReader(Stream);
SocketReady = true;
}
catch( Exception e)
{
Debug.Log("Socket Erreur :" + e.Message);
}
}
}
private void Update()
{
if(SocketReady)
{
if(Stream.DataAvailable)
{
string data = reader.ReadLine();
if (data != null)
OnIncomingData(data);
}
}
}
private void OnIncomingData(string data)
{
Instantiate(Messageprefabs, chatcontainairs.transform);
}
} this is the server class using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Sockets; using UnityEngine;
public class Server : MonoBehaviour { private List Clients; private List DisconnectedList; public int port = 6321; private TcpListener server; private bool ServerStarted; private void start() { Clients = new List(); DisconnectedList = new List(); try { server = new TcpListener(IPAddress.Any, port); server.Start();
StartListinning();
ServerStarted = true;
Debug.Log("server has been start at port" + port.ToString());
}
catch (Exception e){
Debug.Log("Socket Erreur" + e.Message);
}
}
private void Update()
{
if (!ServerStarted)
{
return;
}
foreach (ServerClient c in Clients)
{
if (!IsConnected(c.tcp))
{
c.tcp.Close();
DisconnectedList.Add(c);
continue;
}
else
{
NetworkStream s = c.tcp.GetStream();
if(s.DataAvailable)
{
StreamReader reader = new StreamReader(s, true);
string Data = reader.ReadLine();
if (Data != null)
OnIncomingData(c, Data);
}
}
}
}
private bool IsConnected(TcpClient c)
{
try
{
if(c!=null &&c.Client!=null && c.Client.Connected)
{
if(c.Client.Poll(0,SelectMode.SelectRead))
{
return !(c.Client.Receive(new byte[1], SocketFlags.Peek) == 0);
}
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
private void StartListinning()
{
server.BeginAcceptTcpClient(AcceptTcpClient, server);
}
private void AcceptTcpClient(IAsyncResult ar)
{
TcpListener Listenner = (TcpListener)ar.AsyncState;
Clients.Add(new ServerClient(Listenner.EndAcceptTcpClient(ar)));
StartListinning();
BroadCast(Clients[Clients.Count - 1].ClientName + "Has Connect", Clients);
}
private void OnIncomingData(ServerClient c ,string Data) {
Debug.Log(c.ClientName + "has sent the fellowing messages" + Data);
}
private void BroadCast( string data,List<ServerClient> cl)
{
foreach( ServerClient c in cl)
{
try
{
StreamWriter writer = new StreamWriter(c.tcp.GetStream());
writer.WriteLine(data);
writer.Flush();
}
catch(Exception e)
{
Debug.Log("Writer Erreur :" + e.Message + "To Client :" + c.ClientName);
}
}
}
public class ServerClient
{
public TcpClient tcp;
public string ClientName;
public ServerClient( TcpClient ClientSocket)
{
ClientName = "Gest";
tcp = ClientSocket;
}
}
}
Your answer
Follow this Question
Related Questions
ANDROID PLAYER SETTINGS NOT SHOWING BUT THE OTHERS DO : 0 Answers
Player Settings not working. 0 Answers
Cinema4d FBX Animations not working 0 Answers
Animator does not show up 0 Answers