[C#] Server – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

[C#] Server – .NET – Fórum – Programujte.com[C#] Server – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Mutagen0
Super člen
6. 6. 2010   #1
-
0
-

Zdravim ...
Snazim se naucit spojeni mezi serverem a clientem (TCP/IP) ale mam tu takovy problem ...
jeste nikdy sem nedelal server ani clienta a vubec nevim jak by to melo vypada (Strukutra apod.)
Jde mi hlavne o ten server neboli client je prej lehkej ... Nemohli by jste me nejak poradit co bych v tom serveru mel mit presne aby se me to spojilo apodobny veci ? Struktura, co tam vsechno musi bejt aby to mohlo fungovat ? Dekuji moc

Nahlásit jako SPAM
IP: 88.101.160.–
Reklama
Reklama
Larry0
Newbie
7. 6. 2010   #2
-
0
-

Tiez som to nedavno skusal, treba googlit... Zalezi na tom na co to presne chces, ci chces synchronny alebo asynchronny server atd...
napr. som skusal toto http://csharp.net-informations.com/communications/csharp-server-socket.htm
a tu som ti uploadol co som podla toho navodu "vytvoril" http://larry.yweb.sk/Projects.zip

Nahlásit jako SPAM
IP: 83.168.149.–
Mutagen0
Super člen
7. 6. 2010   #3
-
0
-

Larry napsal:
Tiez som to nedavno skusal, treba googlit... Zalezi na tom na co to presne chces, ci chces synchronny alebo asynchronny server atd...
napr. som skusal toto http://csharp.net-informations.com/communications/csharp-server-socket.htm
a tu som ti uploadol co som podla toho navodu "vytvoril" http://larry.yweb.sk/Projects.zip



Jj dik to je ono jen bych potreboval aby to odesilalo na server informace a pak v clientoj je zobrazilo ... Jinak nechci nejak zpochybnovat tvoji praci ale mas tam par chyb ... treba mas while a pod while mas kod ke kterymu ani nemuze nikdy dojit ....

Edit : Jeste jedna otazka ... Jak muzu porpojit Form a Server v konzoli ? jako ze bych vyplnil IP a port spustil server a ono by se to spustilo s tou IP a portem ?

Nahlásit jako SPAM
IP: 88.101.160.–
Mutagen0
Super člen
7. 6. 2010   #4
-
0
-

tak sem zistil ze muzu zpustit pres Application.Run(new Server()); ale rpoblem je v tom ze mi to ten server nevezme z duvodu to prave nevim :-D ... je to consolova app ale kdyz vytvarim new file inside project tak tam nemam navyber nic consolovyho :-X

Nahlásit jako SPAM
IP: 88.101.160.–
Larry0
Newbie
7. 6. 2010   #5
-
0
-

Je mozne a pravdepodobne ze su tam chyby :), vacsinu som opisal podla toho navodu a potom som mozno nieco skusal a nechal som to tam nedokoncene... nepamatam sa uz... no a ak chces robit nieco komplexnejsie tak by si sa mal naucit najskor zakladnejsie veci a nie hned sa pustat do veci ktorym nerozumies, treba aj pochopit ako to funguje :)

Nahlásit jako SPAM
IP: 83.168.149.–
Mutagen0
Super člen
7. 6. 2010   #6
-
0
-

Larry napsal:
Je mozne a pravdepodobne ze su tam chyby :), vacsinu som opisal podla toho navodu a potom som mozno nieco skusal a nechal som to tam nedokoncene... nepamatam sa uz... no a ak chces robit nieco komplexnejsie tak by si sa mal naucit najskor zakladnejsie veci a nie hned sa pustat do veci ktorym nerozumies, treba aj pochopit ako to funguje :)


Tak jako ne tady jde jenom o to jak spusim console app pres form praveze pres application.Run to nefaka a nevim proc ale nomrlane to funguje ... Jde mi o to aby sem to nemel rozprcany vsehcno ale mel v 1 programu ...

Nahlásit jako SPAM
IP: 88.101.160.–
Larry0
Newbie
7. 6. 2010   #7
-
0
-

Nechapem, to chces mat server aj klientsku aplikaciu v jednom programe? :)

Nahlásit jako SPAM
IP: 83.168.149.–
Mutagen0
Super člen
8. 6. 2010   #8
-
0
-

Larry napsal:
Nechapem, to chces mat server aj klientsku aplikaciu v jednom programe? :)


Tak tak ... Mel bych tam bud spustit server nebo pripojit k serveru ... Pri spusteni serveru by vyjela console zo serverem a s udajema co bych zadal do textboxu...(IP,Port)

Nahlásit jako SPAM
IP: 88.101.160.–
midin0
Věrný člen
8. 6. 2010   #9
-
0
-

:) Tak to nebude jeden ale uz tri programy, prece. To tvoje "Mel bych tam bud spustit server nebo pripojit k serveru" by bylo jeste jako nejaky switch menu. A proste nemuzes spojovat klienta se serverem.

Nahlásit jako SPAM
IP: 90.177.64.–
Zápisky z dění na FB (momentálně ve vývoji): http://fbpd.ic.cz/
8. 6. 2010   #10
-
0
-

To midin : Proč ne? Klient může být zároveň server.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen0
Super člen
8. 6. 2010   #11
-
0
-

djanosik napsal:
To midin : Proč ne? Klient může být zároveň server.

Jak to tedka myslis ?

Nahlásit jako SPAM
IP: 88.101.160.–
8. 6. 2010   #12
-
0
-

To Mutagen : Na takovou otázku obvykle odpovím "tak, jak jsem to napsal". Zkus to upřesnit.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
Larry0
Newbie
8. 6. 2010   #13
-
0
-

potom asi nemyslis klient-server aplikaciu ale nejaku p2p ?

Nahlásit jako SPAM
IP: 83.168.149.–
Mutagen0
Super člen
8. 6. 2010   #14
-
0
-

djanosik napsal:
To Mutagen : Na takovou otázku obvykle odpovím "tak, jak jsem to napsal". Zkus to upřesnit.


No tak nemyslel jsem to jako ze to chci napsat ale docela dobre to vyznelo Ja bych potreboval neco jako Clienta v kterym je zabudovanej server a mohl bych ho treba u sebe spustit s moji IP a nekdo se pres stejnyho clienta pripoji k mymu serveru a at muzem treba posilat zpravy nebo tak neco ... Nebo obracene nekdo by spusil server se svou IP a ja se k nemu mihl pripojit ...

Nahlásit jako SPAM
IP: 88.101.160.–
Larry0
Newbie
8. 6. 2010   #15
-
0
-

No ono ti nic nebrani mat u seba pusteny server - ako zvlast aplikaciu, aj klienta - ako dalsiu aplikaciu... A s tym aby sa na tvoj server u teba napajal niekto zvonku pridu asi dalsie problemy - firewall-y, port forwarding, ci mas verejnu IP atd... ale to si hol musis nastudovat - treba googlit, tam najdes vsetko co potrebujes :)

Nahlásit jako SPAM
IP: 83.168.149.–
Mutagen0
Super člen
8. 6. 2010   #16
-
0
-

Larry napsal:
No ono ti nic nebrani mat u seba pusteny server - ako zvlast aplikaciu, aj klienta - ako dalsiu aplikaciu... A s tym aby sa na tvoj server u teba napajal niekto zvonku pridu asi dalsie problemy - firewall-y, port forwarding, ci mas verejnu IP atd... ale to si hol musis nastudovat - treba googlit, tam najdes vsetko co potrebujes :)


Googluju co se da ... ale ono je hodne neprakticky upravovat server a client zvast a zvlast to pokazdy kompilovat

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
9. 6. 2010   #17
-
0
-

Takže, jestli to dobře chápu, jediné, co nevíš je, jak "namačkat" server a klienta do jednoho exe a jak to rozlišit při spuštění?

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
9. 6. 2010   #18
-
0
-

liborb napsal:
Takže, jestli to dobře chápu, jediné, co nevíš je, jak "namačkat" server a klienta do jednoho exe a jak to rozlišit při spuštění?


Chapes to uplne presne ...

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
10. 6. 2010   #19
-
0
-

Tak nejlépe to rozlišíš přes parametry příkazové řádky, tj. něco jako:

if ((args.Length != 1) || (args[0].CompareTo("/server") != 0))

{
// zobrazeni formu klienta
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
// kod pro server
Console.WriteLine("Server ....");
}


Pokud aplikaci spustíš xy.exe, tak se spustí klient. Pokud ji spustíš s parametrem (xy.exe /server), tak spustí server.


Dalším problémem ovšem je, že sis vybral zvláštní kombinaci konzole nebo form. Aplikace může být typu konzole nebo typu WF. Takže standardně budeš mít buď vždy zobrazenou konzoli, ať spustíš to nebo ono (typ aplikace konzole) nebo konzole nikdy vidět nebude (typ aplikace WF). Můžeš to vyřešit třeba tak, že do té první varianty přidáš uzavření konzole. Ještě si rozmysli, jestli se chceš touto cestou vydat :smile1: .

Nahlásit jako SPAM
IP: 85.207.166.–
Mutagen0
Super člen
10. 6. 2010   #20
-
0
-

liborb napsal:
Tak nejlépe to rozlišíš přes parametry příkazové řádky, tj. něco jako:

if ((args.Length != 1) || (args[0].CompareTo("/server") != 0))

{
// zobrazeni formu klienta
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
// kod pro server
Console.WriteLine("Server ....");
}


Pokud aplikaci spustíš xy.exe, tak se spustí klient. Pokud ji spustíš s parametrem (xy.exe /server), tak spustí server.


Dalším problémem ovšem je, že sis vybral zvláštní kombinaci konzole nebo form. Aplikace může být typu konzole nebo typu WF. Takže standardně budeš mít buď vždy zobrazenou konzoli, ať spustíš to nebo ono (typ aplikace konzole) nebo konzole nikdy vidět nebude (typ aplikace WF). Můžeš to vyřešit třeba tak, že do té první varianty přidáš uzavření konzole. Ještě si rozmysli, jestli se chceš touto cestou vydat :smile1: .


No jak to tak posloucham Tak to asi bude jednodusi udelat zvlast ... Asi udelam to ze si to dam do slozky a budu spustet clienta a pres kod se mi pusti 2 soubor server vypada to asi na nejjednodusi reseni ... ale nevim jestli bude zase fungovat to ze kdyz si tam dam do form vyplnim ip a port aby se to preneslo do serveru ...

Nahlásit jako SPAM
IP: 88.101.160.–
10. 6. 2010   #21
-
0
-

To liborb : Obecně vzato může být oboje WF aplikace. Myslím, že v tomto případě to nebude žádnej problém.
To Mutagen : Jakou že to děláš aplikaci?

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen0
Super člen
10. 6. 2010   #22
-
0
-

djanosik napsal:
To liborb : Obecně vzato může být oboje WF aplikace. Myslím, že v tomto případě to nebude žádnej problém.
To Mutagen : Jakou že to děláš aplikaci?


Nakej Chat ... no kdyby server mohl bejt pres form tak bych v tom rpoblem nevidel ale jaksi nevim jak udelat server ve formu :-)))

Nahlásit jako SPAM
IP: 88.101.160.–
10. 6. 2010   #23
-
0
-

To Mutagen : Stejně jako v konzoli :) Jen bude jiný UI.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen0
Super člen
10. 6. 2010   #24
-
0
-

djanosik napsal:
To Mutagen : Stejně jako v konzoli :) Jen bude jiný UI.


Okey zkusim to ;-) doufam ze se mi to podari i lip nez v konzoli ... pokusim se o to dik za naky napady _

Nahlásit jako SPAM
IP: 88.101.160.–
Mutagen0
Super člen
11. 6. 2010   #25
-
0
-

Zdravim ... Tak sem konečne něco spachal ale porad mi to hazi error :-(
(Metoda musí mít typ vrácené hodnoty) a porad nevim jak to opravit... Jde o tento rádek public Start_ServerOkno()



using System;
using System.Drawing;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Text;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Threading;
using System.Collections;
using System.Data;

namespace Chat_server
{
/// <summary>
/// Description of Server.
/// </summary>
public partial class ServerOkno : Form
{
public ServerOkno()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}

public Start_ServerOkno()
{
spojeni = new TcpListener(IPAddress.Parse("127.0.0.1"), 5050); //Spojeni na LocalHost s portem 5050
Socket socket; // zacina se naslouchat na dane IP adrese a portu spojeni.Start();
spojeni.Start();

while(true)
{
socket = spojeni.AcceptSocket();
if(socket.Connected)
{
//Console.WriteLine(" >> Client Connected");
// vytvoreni bufferu pro ziskana data
Byte[] received = new Byte[1024];
// prijimani dat - pozadavku
int i = socket.Receive(received, received.Length, 0);
// prevod bytu na retezec
string request = Encoding.ASCII.GetString(received);
// vytvoreni bufferu pro naplneni daty k odeslani
Byte[] Data2Send = new Byte[1024];
// .... zpracovani prichoziho pozadavku ....
// .... ziskani souboru k odeslani ....
// odeslani dat klientu
socket.Send(Data2Send, Data2Send.Length, 0);
}
}
}
}
}

Nahlásit jako SPAM
IP: 88.101.160.–
liborb
~ Redaktor
+18
Guru
11. 6. 2010   #26
-
0
-

public void Start_......

Nahlásit jako SPAM
IP: 195.189.143.–
Mutagen0
Super člen
11. 6. 2010   #27
-
0
-
Nahlásit jako SPAM
IP: 88.101.160.–
11. 6. 2010   #28
-
0
-

To Mutagen : Ten void je v dané situaci správně. Problém je s proměnnou spojeni, která není nikde definovaná (stačí číst ty chybový hlášky a určitě to poznáš sám). Doporučoval bych nejprve projít alespoň minimum teoretických základů, než se pustíš do praktických věcí.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen0
Super člen
11. 6. 2010   #29
-
0
-

djanosik napsal:
To Mutagen : Ten void je v dané situaci správně. Problém je s proměnnou spojeni, která není nikde definovaná (stačí číst ty chybový hlášky a určitě to poznáš sám). Doporučoval bych nejprve projít alespoň minimum teoretických základů, než se pustíš do praktických věcí.

Jo ale ja vim ze tam neni definovana ale jak si asi mam definovat kdyz mi to nevezme string a nic ostatniho ?

Nahlásit jako SPAM
IP: 88.101.160.–
Mutagen0
Super člen
11. 6. 2010   #30
-
0
-

Okey uz mi to faka sem pred to spojeni dal TcpListener

Nahlásit jako SPAM
IP: 88.101.160.–
beachboy0
Návštěvník
12. 6. 2010   #31
-
0
-

Kazda promenna musi mit preci definovany datovy typ :-)

Nahlásit jako SPAM
IP: 83.208.238.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 52 hostů

Podobná vlákna

Server status — založil lolik

Lokálny server — založil Marzineez

Ambiciózní server — založil Laaca

Server a Klient — založil infomf

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý