下面是我简单模仿了一个登陆界面.
客户端与服务器端都是在自己的机子上运行的.
运行后提示这样的错误
"System.Net.Sockets.SocketException: 由于目标机器积极拒绝,无法连接。"
帮忙看一下是什么意思.
下面是我的代码
写的很烂
见笑
服务器端:
private void Listen()
{
try
{
tcp1=new TcpListener(5657);
tcp1.Start();
textBox1.Text="正在监听";
while(listenrun)
{
//新建立的连接用套接字s表示
Socket s=tcp1.AcceptSocket();
//接收客户端的信息
byte[] a=new byte[100];
int i=s.Receive(a);
ASCIIEncoding asen=new ASCIIEncoding();
byte []b=new byte[100];
byte []c=new byte[100];
for(int k=0;k<=4;k++)
{
b[k]=a[k];
}
string s2=System.Text.Encoding.UTF8.GetString(b);
for(int m=5;m<i;m++)
{
c[m]=a[m];
}
string s3=System.Text.Encoding.UTF8.GetString(c);
if(s2=="login")
{
string str="Persist Security Info=False;Initial Catalog=qq;";
str+="Data Source=xingxing;Integrated Security=SSPI;";
SqlConnection Con=new SqlConnection(str);
Con.Open();
string SQL="select * from qqhao ";
if(SQL==s3)
{
s.Send(asen.GetBytes("right"));
s.Close();
tcp1.Stop();
}
else
{
s.Send(asen.GetBytes("wrong"));
}
}
}
}
catch(Exception)
{
textBox1.Text="错误";
}
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
th=new Thread(new ThreadStart(Listen));
th.Start();
}
}
}
客户端:
IPHostEntry myip=Dns.GetHostByName((Dns.GetHostName()));
IPAddress []ip=myip.AddressList;
strip=ip[0].ToString();
str1=textBox1.Text.ToString();
str2=textBox1.Text.ToString();
str3="login";
str="str3"+"str1"+"str2";
TcpClient tcp1=new TcpClient();
tcp1.Connect("192.168.1.101",8889);
Stream stm=tcp1.GetStream(); //得到客户端的流
ASCIIEncoding asen=new ASCIIEncoding();
byte []b=asen.GetBytes(str);
stm.Write(b,0,b.Length);
//接收服务器返回信息
byte []bb=new byte[100];
int k=stm.Read(bb,0,100);
st=System.Text.Encoding.UTF8.GetString(bb);
if(st=="right")
{
MessageBox.Show("chenggong");
}
else
{
MessageBox.Show("shibai");
}
写的太烂了
不好的地方请帮忙改正一下
谢谢