ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Братцы, нужна помощь в C#
  #1  
Старый 15.04.2010, 19:31
bugrom256
Новичок
Регистрация: 14.04.2010
Сообщений: 14
Провел на форуме:
27397

Репутация: 0
По умолчанию Братцы, нужна помощь в C#

необходимо сделать трехзвенный иерархический клиент-сервер: клиент (КПК, отпраляющий запрос) -> промежуточный сервер (только для передачи к конечному серверу)-> конечный сервер (в нем база данных, из которой происходит выборка нужной информации).

C# изучаю недавно... кто может помочь ??))
 
Ответить с цитированием

  #2  
Старый 15.04.2010, 19:48
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

и в чем проблема?

Возможно заинтересует: https://forum.antichat.ru/showthread.php?p=2007760
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #3  
Старый 15.04.2010, 19:57
bugrom256
Новичок
Регистрация: 14.04.2010
Сообщений: 14
Провел на форуме:
27397

Репутация: 0
По умолчанию

Проблема в том, что не писал под КПК, следовательно не знаю ньюансов, и с промежуточным сервером траблы: с клиентом конектится, с конечным сервером тоже, а вот передачу сообщений от клиента серверу не получается реализовать...

Словом, не очень понятен принцип функционирования промежуточного сервера.
Есть идеи, Волшебник ????
 
Ответить с цитированием

  #4  
Старый 15.04.2010, 20:03
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

для КПК если уж выбран .NET я понимаю будет использован .NET Compact Framework.
Честно говоря под КПК тоже ни разу не писал (не было необходимости).
Для промежуточного сервера просто написать веб-сервис, получающий данный из БД.

либо я все вижу за "розовыми очками", либо не понимаю в чем проблема.

P.S. n-tier
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #5  
Старый 15.04.2010, 20:07
bugrom256
Новичок
Регистрация: 14.04.2010
Сообщений: 14
Провел на форуме:
27397

Репутация: 0
По умолчанию

проблема в промежуточном сервере... как его писать...

вот что у меня получилось:

using System; /////////////////////////////////////////////////
using System.Collections.Generic;///// Консольный стандарт ////
using System.Text;/////////////////////////////////////////////
using System.Net.Sockets; // Вот он, родимый коллекшн классов /
using System.Threading; // Коллекшн для работы с потоками /////
using System.IO;
using System.Net;

namespace tcp_between_server
{
class Program
{
static void Main(string[] args)
{
string cmd;
// Console.Write("Port to listen: ");
// int port = Convert.ToInt32(Console.ReadLine());
Int32 port1 = 4000;
Console.WriteLine("Creating server...");
Server Serv = new Server(); // Создаем новый экземпляр класса
// сервера
Serv.Create(port1);

while (true)
{
cmd = Console.ReadLine(); // Ждем фразы EXIT когда
// понадобится выйти из приложения.
// интерактивность.
if (cmd == "EXIT")
{
Serv.Close(); // завершение сервера.
return;
}
}
}

public class Server // класс сервера.
{
private int LocalPort;
private Thread ServThread; // экземпляр потока
TcpListener Listener; // листенер))))


public void Create(int port1)
{
LocalPort = port1;
ServThread = new Thread(new ThreadStart(ServStart));
ServThread.Start(); // запустили поток. Стартовая функция –
// ServStart, как видно выше
}

public void Close() // Закрыть серв
{
Listener.Stop();
ServThread.Abort();
return;
}

private void ServStart()
{
Socket ClientSock; // сокет для обмена данными.
TcpClient Client = new TcpClient();
string data;
byte[] cldata = new byte[1024]; // буфер данных
IPAddress sock_addr = IPAddress.Parse("127.0.0.1");
TcpListener Listener = new TcpListener(sock_addr, LocalPort);
try
{
Listener.Start(); // начали слушать
}
catch (SocketException exc)
{
Console.WriteLine("Error: " + exc.Message);
}
Console.WriteLine("Waiting connections [" + Convert.ToString(LocalPort) + "]...");
try
{
ClientSock = Listener.AcceptSocket(); // пробуем принять
// клиента
}
catch
{
ServThread.Abort(); // нет – жаль(
return;
}
int i = 0;

if (ClientSock.Connected)
{
while (true)
{
try
{

string ip = "127.0.0.1";
Int32 port = 5000;
Client.Connect(ip, port);

i = ClientSock.Receive(cldata); // попытка чтения
// данных
}
catch
{
Console.WriteLine("\n\t\t\tCannot connect to remote host!");
Console.WriteLine("\n\n\n\t\t\t Press any key to continue...");
Console.ReadKey();
return;
}

try
{
if (i > 0)
{


data = Encoding.ASCII.GetString(cldata).Trim();
Console.WriteLine("<" + data);
if (data == "CLOSE") // если CLOSE –
// завершение работы клиента и сервера
{
ClientSock.Send(Encoding.ASCII.GetBytes("Closing the server..."));
ClientSock.Close();
Listener.Stop();
Console.WriteLine("Server closed. Reason: client wish! Type EXIT to quit the application.");
ServThread.Abort();
return;
}
else
{ // нет – отправляем данные клиенту.
Socket Sock = Client.Client;

// ClientSock.Send(Encoding.ASCII.GetBytes(data));
Sock.Receive(cldata);
Sock.Send(Encoding.ASCII.GetBytes(data));

ClientSock.Send(Encoding.ASCII.GetBytes(data));
cldata = new byte[1024];

}
}
}
catch
{
ClientSock.Close(); // ну эт если какая хрень..
Listener.Stop();
Console.WriteLine("Server closing. Reason: client offline. Type EXIT to quit the application.");
ServThread.Abort();
}
}
}
}
}
}
}

проблема в пересылке, но как её устранить пока не могу понять...
 
Ответить с цитированием

  #6  
Старый 15.04.2010, 20:25
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Цитата:
проблема в пересылке, но как её устранить пока не могу понять...
У меня манна закончилась =( Так что раскажи уж сам что за проблема с пересылкой
 
Ответить с цитированием

  #7  
Старый 15.04.2010, 20:27
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

пипец, сокеты...

написано в стиле 2000-2005, когда в моде были трои вида NetBus, Lamer Death.

Когда вся логика была завязана на пересылке константы.

Тут веб-сервис писать надо, хостить его на IIS и все.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...

Последний раз редактировалось W!z@rD; 16.04.2010 в 20:06..
 
Ответить с цитированием

  #8  
Старый 15.04.2010, 20:27
bugrom256
Новичок
Регистрация: 14.04.2010
Сообщений: 14
Провел на форуме:
27397

Репутация: 0
По умолчанию

судя по всему трабл здесь:
Sock.Receive(cldata);
Sock.Send(Encoding.ASCII.GetBytes(data));

ClientSock.Send(Encoding.ASCII.GetBytes(data));

но как его устранить ???? что не так делаю ???? использую 2 сокета и 2 порта.... может в этом трудности ????
 
Ответить с цитированием

  #9  
Старый 15.04.2010, 20:30
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

http://ru.wikipedia.org/wiki/Веб-сервис

http://www.realcoding.net/article/view/2519
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #10  
Старый 15.04.2010, 20:44
bugrom256
Новичок
Регистрация: 14.04.2010
Сообщений: 14
Провел на форуме:
27397

Репутация: 0
По умолчанию

=))) спасибо конечно... но веб-сервисы я тоже не писал ((( а прога уже ух как нужна ((( может через сокеты на mySql получится ???
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна ваще помощь XP jks Windows 12 22.01.2009 00:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ