我制作了一个客户端服务器但不幸的是我收到了这个错误
你可以告诉我如何解决它吗?
类client.cs中发生错误... 它写得对吗?
我打开命令提示符并写了" ipconfig"和IPv4的数量是" 192.168.1.104"
Client.cs
try
{
TcpClient tcp = new TcpClient();
Console.WriteLine("Conectare...");
tcp.Connect("192.168.1.104", 8001);
Console.WriteLine("Conectat");
Console.WriteLine("Introduce-ti sirul de caractere");
string str = Console.ReadLine();
Stream strm = tcp.GetStream();
ASCIIEncoding asci = new ASCIIEncoding();
byte[] ba = asci.GetBytes(str);
Console.WriteLine("Trimitere");
strm.Write(ba, 0, ba.Length);
byte[] bb = new byte[100];
int b = strm.Read(bb, 0, 100);
}
catch (Exception ex)
{
Console.WriteLine("Eroare..."+ex.StackTrace);
}
Server.cs
try
{
IPAddress IPadress = IPAddress.Parse("192.168.1.104");
TcpListener listner = new TcpListener(IPadress, 8001);
Console.WriteLine("Serverul ruleaza");
Console.WriteLine("Punctul final este: " + listner.LocalEndpoint);
listner.Start();
Socket o = listner.AcceptSocket();
Console.WriteLine("Conexiunea acceptata de la " + o.RemoteEndPoint);
byte[] b = new byte[100];
int k = o.Receive(b);
Console.WriteLine("Receptionat");
for (int i = 0; i < k; i++)
{
Console.WriteLine(Convert.ToChar(b[1]));
}
ASCIIEncoding asc = new ASCIIEncoding();
o.Send(asc.GetBytes("Mesaj automat" + "String trimis de server"));
o.Close();
listner.Stop();
}
catch (Exception ex)
{
Console.WriteLine("Measj de eroare" + ex.StackTrace);
}
Console.ReadLine();
答案 0 :(得分:2)
转到www.google.com并输入“我的IP是什么”,您将看到的第一个结果将是您的真实IP。现在,为了能够从外部应用程序连接到该IP,您必须从路由器网站页面将“自己的IP”允许加入白名单。这个http://www.theninjaproxy.org/wp-content/uploads/2013/07/netgearWNDR4500.jpg的相似页面。如果你想从你的朋友计算机上打开那个有另一个IP的应用程序,请说'11 .11.11.11',你也需要添加它,否则他将无法打开你的c#应用程序。
编辑:在尝试从c#应用程序连接到mysql数据库的情况相同,你必须转到你的cpanel并允许使用该c#应用程序的计算机的IP。但对你来说,你只需要去你的路由器网页。
答案 1 :(得分:1)
服务器需要在循环中侦听以接受客户端连接。 Example code