Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Chat


alex9819

Rekomendowane odpowiedzi

Opublikowano

Siemka, dawno tu nie zaglądałem więc przychodzę by wam podpaś :D. Postanowiłem że zrobię sobie czat a jako że jestem nie ugięty to sukces już mogę gwarantować. No a więc ma to wyglądać jak typowe gg, client (napisany w VSB) odbierający danne z serwera FTP i odwrotnie wysyłający. I teraz potrzebny mi punkt zaczepienia np Silnik na ftp, jak to ogarnąć, gdzie to ma być zapisywane i jak odczytywane, a może po prostu użyć czegoś gotowego? Sprawa z clientem będzie prostsza bo będzie zapewne działo na tej samej zasadzie co client do poczty. więc piszcie te jakieś pomysły na ten serwer. Dzięki i Pozdrawiam.

mógł by mi admin/mod zmienić nick na "Cross"? Dzięki!.

Opublikowano

Nie wiem, np zarzucę skrypt na serwer który będzie zapisywał rozmowy a client odczytywał i zapisywał.

Tak jak mówię nie mam punktu zaczepnego, zupełnie nie wiem jak się za t zabrać.

mógł by mi admin/mod zmienić nick na "Cross"? Dzięki!.

Weteran
Opublikowano

Po prostu użyj protokołu TCP. FTP nie jest tu do niczego potrzebne. Masz w internecie pełno przykładowych chatów w c# lub vb.

Opublikowano

A co mi tam, taki pisany na szybko.

Client:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Threading;

namespace Client
{
    public partial class Form1 : Form
    {

        TcpClient client;
        NetworkStream netStream;
        public Form1()
        {
            InitializeComponent();
            client = new TcpClient();
        }

        void RecvThread()
        {
            while (true)
            {
                byte[] bytesFrom = new byte[1024];
                try
                {
                    int readed = netStream.Read(bytesFrom, 0, 1024);
                    if (readed < 0)
                        break;
                    this.Invoke(new Action(() => textBox2.Text += System.Text.Encoding.ASCII.GetString(bytesFrom)));
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.ToString());
                }
            }

        }

        private void send_Click(object sender, EventArgs e)
        {
            netStream.Write(System.Text.Encoding.ASCII.GetBytes(textBox1.Text), 0, textBox1.Text.Length);
        }

        private void connect_Click(object sender, EventArgs e)
        {
            client.Connect("127.0.0.1", 1234);
            netStream = client.GetStream();
            new Thread(RecvThread).Start();
        }
    }
}

Server:

using System;
using System.Collections.Generic;
using System.Threading;
using System.Net.Sockets;
namespace Server2
{
    class Program
    {


        public class ClientHandler
        {
            TcpClient client;
            Server server;
            NetworkStream stream;
            int id;

            public ClientHandler(Server _server, TcpClient _client, int _id)
            {
                client = _client;
                id = _id;
                server = _server;
                stream = client.GetStream();
                Thread thread = new Thread(Thread);
                thread.Start();
            }

            void Thread()
            {
                while (true)
                {
                    byte[] bytesFrom = new byte[1024];
                    try
                    {
                        int readed = stream.Read(bytesFrom, 0, 1024);
                        if(readed < 0)
                            break;
                        Console.WriteLine("Message: " + System.Text.Encoding.ASCII.GetString(bytesFrom));
                        server.SendToAll(bytesFrom, readed);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(">>" + ex.ToString());
                    }
                }
                Console.WriteLine(String.Format("Client {0} disconnected", id));
                server.clients.Remove(client);
            }
        }

        public class Server
        {
            public List<TcpClient> clients;
            public Server(int port)
            {
                clients = new List<TcpClient>();
                TcpListener server = new TcpListener(1234);
                server.Start();
                int counter = 0;
                while (true)
                {
                    TcpClient client = server.AcceptTcpClient();
                    counter++;
                    clients.Add(client);
                    ClientHandler cHandler = new ClientHandler(this, client, counter);
                    Console.WriteLine(String.Format("Client {0} connected", counter));
                }
            }

            public void SendToAll(byte[] data, int length)
            {

                foreach (TcpClient client in clients)
                {
                    NetworkStream stream = client.GetStream();
                    stream.Write(data, 0, length);
                }

            }
        }

        static void Main(string[] args)
        {
            Server server = new Server(1234);
        }
    }
}

Dużo bugów, tak więc nie będzie działać tak jak powinno.

 

@edit, nvm to o VB, ale łatwo przenieść.

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano

wow, dzięki. Tylko jak mam wbić serwer na hosting? bo nie chcę by serwer stał u mnie.

mógł by mi admin/mod zmienić nick na "Cross"? Dzięki!.

Weteran
Opublikowano

wow, dzięki. Tylko jak mam wbić serwer na hosting? bo nie chcę by serwer stał u mnie.

Kupujesz vpsa z linuxem za kilka złotych miesięcznie, instalujesz mono, wysyłasz program i go uruchamiasz.

Oczywiście program musisz sam sobie napisać, gdyż ten kod co podał vesim nie nadaje się.

Opublikowano

Ale chodzi mi o serwer np keed.pl wrzucić na niego serwer przez filzille i tyle? nie dało by się?

mógł by mi admin/mod zmienić nick na "Cross"? Dzięki!.

Opublikowano

No dobra, każdy like i do zamknięcia. Dzięki za pomoc : ).

mógł by mi admin/mod zmienić nick na "Cross"? Dzięki!.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...