刚学习用c#的socket来通信,在同一个局域网的两台电脑进行测试,出现不能链接的情况,如图所示,请问是什么原因
界面如下:
报错如下:
代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
namespace _508P2PServer
{
public partial class Form1 : Form
{
Thread td;
TcpListener tcpl;
static string message = "";
public Form1()
{
InitializeComponent();
}
void StartListen()
{
tcpl = new TcpListener(888);
tcpl.Start();
while(true)
{
TcpClient tclient = tcpl.AcceptTcpClient();
NetworkStream netstream = tclient.GetStream();
byte[] mbyte = new byte[1024];
int i = netstream.Read(mbyte,0,mbyte.Length);
message = Encoding.Default.GetString(mbyte,0,i);
}
}
private void Form1_Load(object sender, EventArgs e)
{
td = new Thread(new ThreadStart(this.StartListen));
td.Start();
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
string strmes = this.textBox2.Text + ip[0].ToString() + DateTime.Now.ToLongTimeString() + "\n" + richTextBox2.Text + "\n";
TcpClient client = new TcpClient(textBox1.Text, 888);
NetworkStream netstream = client.GetStream();
StreamWriter streamw = new StreamWriter(netstream, Encoding.Default);
streamw.Write(strmes);
streamw.Flush();
streamw.Close();
client.Close();
richTextBox1.AppendText(strmes);
richTextBox1.ScrollToCaret();
richTextBox2.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (message != "")
{
richTextBox1.AppendText(message);
richTextBox1.ScrollToCaret();
message = "";
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (this.tcpl != null)
{
tcpl.Stop();
}
if (td != null)
{
if(td.ThreadState==ThreadState.Running)
{
td.Abort();
}
}
}
}
}
请问问题出在哪