Diskuze: TCP komunikace.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
192.168.1.1 samozřejmě je pro intranet. V konfiguraci routeru by měla být napsaná veřejná IP. Nebo taky na https://www.whatismyip.com/
Tak udělal jsem test a bez úspěchu.
Kódy:
Server
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Parse("90.181.x.xxx"), 23466));
socket.Listen(1);
Socket accepteddata = socket.Accept();
data = new byte[accepteddata.SendBufferSize]; 6
int j = accepteddata.Receive(data);
byte[] adata = new byte[j];
for (int i = 0; i < j; i++)
adata[i] = data[i];
string dat = Encoding.Default.GetString(adata);
MessageBox.Show(dat);
Client
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
s.Connect(IPAddress.Parse("90.181.x.xxx"), 23466);
string q = "Jde tooo";
byte[] data = Encoding.Default.GetBytes(q);
s.Send(data);
}
catch
{
MessageBox.Show("Zase to nejde");
}
A port forward je nastaven port:23466 ip adresa 192.168.1.1
Nech si v tom "catch" vypsat chybovou hlášku a ne "Zase to nejde"...
Tak tady je chyba
System.Net.Sockets.SocketException(0x80004005):Pokus o připojení
selhal,protože připojená strana v časovém intervalu řádně neodpověděla
, nebo vytvoření připojení selhalo, protože neodpověděl připojený
hostitel 90.181.x.xxx:23466.
v System.Net.Sockets.DoConnect(EndPoint endPointSnapshot, SocketAddress
socketAddress)
v System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
v System.Net.Sockets.Connect(IPAddress address, Int32 port)
Zapni si v routeru administraci z WAN, a jdi na svoji veřejnou IP. Pokud jsi za NATem, nic se ti nezobrazí. Pokud se ti zobrazí administrace routeru, nejsi za NATem a problém je jinde.
Tak to bude něčím jiným. Máš dobře nastavený port forwarding?
Sice v C# nedělám, ale nemá být IPEndpoint 192.168.56.1 ?
Ahoj, ty potřebuješ nastavit sít, tak aby Ti šlo se dostat z veřejné adresy na počítat. Potřebuješ vyřešit port forwarding na routeru a koukni na nastavení firewallu v počítači a pokud máš na routeru tak i tam , ale tam na obyč domácích nebejvá..a kamarád volá Tvojí veřejnou adresu, která padá na tvojí interní adresu
Taak tady vám vypíšu všechny ip co se mi o sobě podařilo zjistit
http://www.whatismypublicip.com/ : 90.181.x.xxx
ipconfig v cmd : 192.168.xx.x
http://myexternalip.com/ :
2a00:1028:96d4:231a:b4ab:xxxx:xxxx:xxxx
Firewall povolen port 23466
port forward na port 23466
Zobrazeno 18 zpráv z 18.