I am trying to ping an IP address from my PC but all packages are lost. I tried a ping to a website (www.google.com) and there is no problem, all packages return correctly.
I have spoken to the administrator of the address I'm trying to establish the connection with and they say everything is working OK and that my IP address is not blocked or anything.
I don't have antivirus and the firewall is off
I try to ping to IP in my LAN and it works fine
help please
[Edit - code moved here from a comment from OP]
the problem isn't in my code because my code work fine in LAN just like the ping(work fine in LAN too) but here my code TCPServer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
namespace NetServer
{
public delegate object ClientConnectHandler(Socket datasocket);
public delegate void DataReceivedHandler(object obj,byte[] data);
public delegate void ClientDisconnectHandler(object obj);
public class TCPServer
{
public event ClientConnectHandler WhenClientConnect;
public event DataReceivedHandler WhenDataReceived;
public event ClientDisconnectHandler WhenClientDisconnect;
Socket ConnectionSocket;
IPEndPoint Endpoint;
byte[] Data=new byte[10000];
object obj=new object();
List OnlineClients = new List();
public TCPServer()
{
ConnectionSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
Endpoint = new IPEndPoint(IPAddress.Parse(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString()),6666);
}
public TCPServer(string ip, int port)
{
ConnectionSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Endpoint = new IPEndPoint(IPAddress.Parse(ip), port);
}
public void Listen()
{
ConnectionSocket.Bind(Endpoint);
ConnectionSocket.Listen(100);
ConnectionSocket.BeginAccept(new AsyncCallback(OnClientConnect), null);
}
public void OnClientConnect(IAsyncResult result)
{
Socket s = ConnectionSocket.EndAccept(result);
OnlineClients.Add(s);
if (WhenClientConnect != null)
obj = WhenClientConnect(s);
ConnectionSocket.BeginAccept(new AsyncCallback(OnClientConnect), null);
s.BeginReceive(Data, 0, Data.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), new SSocket { Object=obj , Socket=s});
}
public void OnDataReceived(IAsyncResult result)
{
SSocket ssocket = (SSocket)result.AsyncState;
try
{
int size = ssocket.Socket.EndReceive(result);
if (WhenDataReceived != null)
WhenDataReceived(ssocket.Object, Data.Take(size).ToArray());
Data = new byte[10000];
ssocket.Socket.BeginReceive(Data, 0, Data.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), new SSocket { Object = obj, Socket = ssocket.Socket });
}
catch(SocketException ex)
{
if(ex.ErrorCode == 10054)
{
foreach (Socket item in OnlineClients)
if (ssocket.Socket == item)
OnlineClients.Remove(item);
if (WhenClientDisconnect != null)
WhenClientDisconnect(ssocket.Object);
}
}
}
public void Send(Socket socket,byte[] data)
{
if(socket!=null)
socket.Send(data);
}
}
public class SSocket
{
object obj;
public object Object
{
get { return obj; }
set { obj = value; }
}
Socket socket;
public Socket Socket
{
get { return socket; }
set { socket = value; }
}
}
}
TCPClient
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Windows.Forms;
namespace NetClientTest
{
public delegate void DataReceivedHandler(byte[] data);
public class TCPClient
{
byte[] data = new b
[/Edit that's all there is]