C# Sockets
Hej,
Sitter och försöker lära mig sockets i C#, och skrev ihop ett litet filöverföringsprogram som verkade fungera bra, ända tills jag testade att ansluta till en annan IP-address än 127.0.0.1.
Kunde inte förstå varför det inte fungerade, så jag skrev en så liten server/klient som möjligt för att försäkra mig om att det inte var jag som gjorde något helt fel. Kan upplysa innan om att jag inte har tagit några kurser i detta, jag har bara läst någon tutorial på internet, så det är mycket möjligt att jag gör något helt knasigt. Här är min klient/server:
Klient:
byte[] data = Encoding.ASCII.GetBytes("HI!");
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("218.211.64.59"), 7779);
clientSocket.Connect(ipEnd);
for (int i = 0; i < 3; i++)
{
clientSocket.Send(data);
System.Console.WriteLine("Data sent");
}
Server:
byte[] data = new byte[10];
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 7779);
serverSocket.Bind(ipEnd);
serverSocket.Listen(10);
Socket clientSocket = serverSocket.Accept();
for (int i = 0; i < 3; i++)
{
clientSocket.Receive(data);
System.Console.WriteLine(Encoding.ASCII.GetString(data));
}
När jag använder min externa IP-Address så får jag "Data sent"x3 i serverkonsollen och "HI!"x1 i klientkonsollen, klienten sitter fast vid clientSock.Receive, den andra upprepningen. Men om jag istället ansluter till 127.0.0.1 får jag "Data sent"x3 och "HI!"x3, som jag väl borde få alltid (?). Sitter i DMZ i routern, och windows brandväggen av, har inte någon annan brandvägg på heller.
Kan också tillägga att det har ingen betydelse om det är klienten eller servern som skickar/tar emot.
Tack på förhand!