Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2013, 09:14   #1
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию Delphi server для Unity3D

Добрый час. Помогите пожалуйста разобраться хочу на Delphi написать свой сервер для Unity3D, пытаюсь сделать обычный коннект .
Кто в теме может знает как это реализовать просто связать их для начала тоесть игра отсылает сообщение серверу, сервер отвечает игре
ClMlD вне форума Ответить с цитированием
Старый 06.03.2013, 12:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А протокол игры известен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.03.2013, 13:33   #3
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А протокол игры известен?
Да и TCP и UDP что мне по душе , но в моем случае что пойму
вот дали пример TCP даже два но они на C# я в нем 0
Код:
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using UnityEngine;

public class Connect : MonoBehaviour
{
    public string serverIP = "127.0.0.1";
    public int  serverPort = 25001;

        public void OnGUI()
        {
            TcpClient tcpClient;
            NetworkStream networkStream;
            StreamReader streamReader;
            StreamWriter streamWriter;
            try
            {
                        tcpClient = new TcpClient(serverIP, serverPort);
                        networkStream = tcpClient.GetStream();
                        GUI.Label(new Rect(10, 10, 150, 20), "Client connected to the Server");
                        
                        streamReader = new StreamReader(networkStream);
                        streamWriter = new StreamWriter(networkStream);
                        streamWriter.WriteLine("Message from the Client...");
                        streamWriter.Flush();
                        GUI.Label(new Rect(10, 30, 150, 20), "Client send message...");
            }
            catch (SocketException ex)
            {
                        GUI.Label(new Rect(10, 10, 150, 20), "Connection error...");
                        Console.WriteLine(ex);
            }
                Console.Read();
        }
}
Код:
using System;

using System.IO;

using System.Net;

using System.Net.Sockets;

using System.Collections;

using UnityEngine;



public class Connect : MonoBehaviour

{

    public string serverIP = "127.0.0.1";

    public int  serverPort = 25001;

    

    public String ReadMsg;

    public String ReadMsg2;



        public void OnGUI()

        {

                if (ReadMsg.Length == 0) {

                    TcpClient tcpClient;

                    NetworkStream networkStream;

                    StreamReader streamReader;

                    StreamWriter streamWriter;

                    try

                        {

                                tcpClient = new TcpClient(serverIP, serverPort);

                                networkStream = tcpClient.GetStream();

                                GUI.Label(new Rect(10, 10, 500, 20), "Client connected to the Server...");

                                

                                streamReader = new StreamReader(networkStream);

                                streamWriter = new StreamWriter(networkStream);

                                

                                streamWriter.WriteLine("status");

                                streamWriter.Flush ();

                                ReadMsg = streamReader.ReadLine();

                                GUI.Label (new Rect (10, 30, 500, 20), "Msg from server:" + ReadMsg+".");

                                

                                streamWriter.WriteLine("login user 123");

                                streamWriter.Flush();

                                ReadMsg2 = streamReader.ReadLine();

                                GUI.Label(new Rect(10, 60, 500, 20), "Msg from server:" + ReadMsg2+".");

                    }

                    catch (SocketException ex)

                    {

                                GUI.Label(new Rect(10, 10, 500, 20), "Connection error...");

                                Console.WriteLine(ex);

                    }

                        Console.Read();

                }

                else {
                        GUI.Label (new Rect (10, 10, 500, 20), "Client connected to the Server...");
                        GUI.Label (new Rect (10, 60, 500, 20), "Msg from server:" + ReadMsg2 + ".");
                        GUI.Label (new Rect (10, 30, 500, 20), "Msg from server:" + ReadMsg + ".");
                }
        }

}
Вот инфа для UDP Тоже C#
ClMlD вне форума Ответить с цитированием
Старый 06.03.2013, 13:58   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...это не протокол игры, это скелеты клиентов для работы по TCP/UDP, не более того.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.03.2013, 14:08   #5
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...это не протокол игры, это скелеты клиентов для работы по TCP/UDP, не более того.
Мне так на форуме Unity ответили что это протокол TCP UDP
ClMlD вне форума Ответить с цитированием
Старый 06.03.2013, 14:10   #6
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

raxp что делать то? не подскажиш? мне б какой нить мини пример бы а там я бы под горочку покатился бы
Сори за мульти пост

Последний раз редактировалось ClMlD; 06.03.2013 в 14:16.
ClMlD вне форума Ответить с цитированием
Старый 06.03.2013, 14:15   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Мне так на форуме Unity ответили что это протокол TCP UDP
вам правильно ответили, что доступ к серверу игры по протоколу UDP и TCP (протокол нижнего уровня, транспорт), но неправильно ответили в контекcте той темы, что это сервер и уж тем более протокол самой игры (протокол верхнего уровня).

Обмениваться сообщениями с сервером игры с помощью предложенных клиентов вы сможете.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.03.2013, 14:26   #8
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию

То есть если данный код переписать на Delphi то всё получиться?
ClMlD вне форума Ответить с цитированием
Старый 06.03.2013, 15:39   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...вы наверно не читаете то, что я пишу. У вас код клиента, к серверу вы сможете соединиться, да. Что же касается вашего первого поста:
Цитата:
хочу на Delphi написать свой сервер для Unity3D
нет. Ибо даже, если вы вместо клиентов используете классы сервера, у вас нет протокола обмена игры, т.е. того, что обычный клиент игры отсылает серверу и что он ему отвечает. Ферштеен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.03.2013, 22:27   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если данный код переписать на Delphi то всё получиться?
Неть не получится
Я спросил знаешь ли ты как игра упаковывает свои данные в UDP\TCP пакеты, т.е. сможешь ли повторить то что делает она.
Приведенный выше код можно переписать на Делфи, но он должен посылать пакет данных, о котором ты ничего не сказал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен Unity3D программист. MaratZahidyl Фриланс 1 10.12.2011 18:16
3D Studio Max и Unity3D rc2f6 Свободное общение 0 07.02.2011 15:23
Delphi-оболочка для MS SQL Server (создание, присоединение, восстановление, резерв. копирование БД) Машуля Помощь студентам 0 28.11.2009 11:27
НЕ могу найти Server Socket в закладке Internet в Delphi 7 для создания серверной части трояна Reds Общие вопросы Delphi 4 11.10.2008 16:27