arashmidos2020
چهارشنبه 28 مرداد 1388, 13:45 عصر
از کلاس سرور و کلانیت دوتا شی می سازم و بعد اجراشون می کن.اما این مشکل رو می ده:
Specified argument was out of the range of valid values.
سلام.من نمی دونم اینو چکار کنم.لطفا کمک کنید
private int _port;
private string _IPserver="";
public int _Port
{
get
{
return _port;
}
set
{
_port = value;
}
}
public string _ipServer
{
get
{
return _IPserver;
}
set
{
_IPserver = value;
}
}
public void Connect()
{
Thread th = new Thread(new ThreadStart(StartConnect));
th.Start();
Console.WriteLine("Server IP : {0}", _ipServer);
}
public void StartConnect()
{
string msg = "I am client";
string msg2 = "";
byte[] byteData = new byte[1000];
byteData = Encoding.UTF8.GetBytes(msg);
byte[] byteDataRec = new byte[1000];
// a client to Connect to server
EndPoint IPe=new IPEndPoint(IPAddress.Parse("127.0.0.1"),_port);
//IPEndPoint IPe=new IPEndPoint(IPAddress.Parse(_IPserver),_port);
try
{
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Connect(IPe);
//_IPserver = ((IPEndPoint)listener.RemoteEndPoint).Address.ToSt ring();
//listener.Shutdown(SocketShutdown.Both);
if (listener.Connected)
{
listener.Receive(byteDataRec);
msg2 = Encoding.UTF8.GetString(byteDataRec);
if (msg2 == "I am server")
{
listener.Send(byteData);
}
}
}
catch (SocketException e)
{
Console.WriteLine("error in winsocket: {0}", e.Message);
}
}
اینم سمت کلاینت هست:
public class ConnectToClient
{
public ArrayList _NodeInfo=new ArrayList();
private int _port;
public int _Port
{
get
{
return _port;
}
set
{
_port = value;
}
}
public void Connect()
{
Thread th = new Thread(new ThreadStart(StartListening));
th.Start();
//string IPClient = (string)_NodeInfo[0];
//Console.WriteLine("Server IP : {0}", IPClient);
}
public void StartListening()
{
string msg = "I am server";
string msg2="";
byte[] byteDataRec = new byte[1000];
byte[] byteData = new byte[1000];
byteData = Encoding.UTF8.GetBytes(msg);
string IPclient;
int i = 0;
//IPEndPoint IPe=new IPEndPoint(IPAddress.Any,_port);
IPEndPoint IPe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), _port);
Socket[] Client = new Socket[100];
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(IPe);
listener.Listen(1000);
while (true)
{
Client[i] = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Client[i] = listener.Accept();
IPclient = ((IPEndPoint)Client[i].RemoteEndPoint).Address.ToString();
i++;
if (listener.Connected)
{
listener.Send(byteData);
listener.Receive(byteDataRec);
msg2 = Encoding.UTF8.GetString(byteDataRec);
if (msg2=="I am clinet")
{
_NodeInfo.Add(IPclient);
}
}
}
}
Specified argument was out of the range of valid values.
سلام.من نمی دونم اینو چکار کنم.لطفا کمک کنید
private int _port;
private string _IPserver="";
public int _Port
{
get
{
return _port;
}
set
{
_port = value;
}
}
public string _ipServer
{
get
{
return _IPserver;
}
set
{
_IPserver = value;
}
}
public void Connect()
{
Thread th = new Thread(new ThreadStart(StartConnect));
th.Start();
Console.WriteLine("Server IP : {0}", _ipServer);
}
public void StartConnect()
{
string msg = "I am client";
string msg2 = "";
byte[] byteData = new byte[1000];
byteData = Encoding.UTF8.GetBytes(msg);
byte[] byteDataRec = new byte[1000];
// a client to Connect to server
EndPoint IPe=new IPEndPoint(IPAddress.Parse("127.0.0.1"),_port);
//IPEndPoint IPe=new IPEndPoint(IPAddress.Parse(_IPserver),_port);
try
{
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Connect(IPe);
//_IPserver = ((IPEndPoint)listener.RemoteEndPoint).Address.ToSt ring();
//listener.Shutdown(SocketShutdown.Both);
if (listener.Connected)
{
listener.Receive(byteDataRec);
msg2 = Encoding.UTF8.GetString(byteDataRec);
if (msg2 == "I am server")
{
listener.Send(byteData);
}
}
}
catch (SocketException e)
{
Console.WriteLine("error in winsocket: {0}", e.Message);
}
}
اینم سمت کلاینت هست:
public class ConnectToClient
{
public ArrayList _NodeInfo=new ArrayList();
private int _port;
public int _Port
{
get
{
return _port;
}
set
{
_port = value;
}
}
public void Connect()
{
Thread th = new Thread(new ThreadStart(StartListening));
th.Start();
//string IPClient = (string)_NodeInfo[0];
//Console.WriteLine("Server IP : {0}", IPClient);
}
public void StartListening()
{
string msg = "I am server";
string msg2="";
byte[] byteDataRec = new byte[1000];
byte[] byteData = new byte[1000];
byteData = Encoding.UTF8.GetBytes(msg);
string IPclient;
int i = 0;
//IPEndPoint IPe=new IPEndPoint(IPAddress.Any,_port);
IPEndPoint IPe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), _port);
Socket[] Client = new Socket[100];
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(IPe);
listener.Listen(1000);
while (true)
{
Client[i] = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Client[i] = listener.Accept();
IPclient = ((IPEndPoint)Client[i].RemoteEndPoint).Address.ToString();
i++;
if (listener.Connected)
{
listener.Send(byteData);
listener.Receive(byteDataRec);
msg2 = Encoding.UTF8.GetString(byteDataRec);
if (msg2=="I am clinet")
{
_NodeInfo.Add(IPclient);
}
}
}
}