我的这个问题一直找不出是什么原因,所以来...,程序运行时没有弹出错误,但是一运行按钮连接,和启动服务器后就窗口死机,
客户端代码:public partial class Form1 : Form
{
TcpListener tcplisten;
Socket so;
NetworkStream netw;
StreamReader str;
StreamWriter stw;
public Form1()
{ InitializeComponent();
}
//连接按钮
private void button1_Click(object sender, EventArgs e)
{
so = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
so.Connect(IPAddress.Parse(textBox1.Text),34567);
if (so.Connected)
{
netw = new NetworkStream(so);
str = new StreamReader(netw);
stw = new StreamWriter(netw);
while(so.Connected)
{
try
{ string tem = str.ReadLine();
if (tem.Length != 0)
{
listBox1.Items.Add("他说:" + tem);
}
}
catch
{ }
}
}
else
{
MessageBox.Show("服务器没有开启");
}
}
//断开连接
private void button2_Click(object sender, EventArgs e)
{
so.Close();
}
//发送信息
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == (char)13)
{
if (so.Connected)
{
try
{
listBox1.Items.Add("我说:" + textBox1.Text);
stw.WriteLine(textBox1.Text);
stw.Flush();
textBox1.Text = "";
}
catch
{
}
}
else
{
MessageBox.Show("没有连接");
}
}
}
}
服务端代码:
public partial class Form1 : Form
{
TcpListener tcplisten;
Socket so;
NetworkStream netw;
StreamReader str;
StreamWriter stw;
IPEndPoint ipp;
Socket ru;
public Form1()
{
InitializeComponent();
}
//启动服务器代码
private void button1_Click(object sender, EventArgs e)
{
ipp = new IPEndPoint(IPAddress.Any,34567);
so = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
so.Bind(ipp);
so.Listen(0);
ru = so.Accept();
netw = new NetworkStream(ru);
str = new StreamReader(netw);
stw = new StreamWriter(netw);
while(ru.Connected)
{
try
{
string tem = str.ReadLine();
if (tem.Length != 0)
{
listBox1.Items.Add("他说:" + tem);
}
}
catch
{
}
}
}
//断开服务器代码
private void button2_Click(object sender, EventArgs e)
{
so.Close();
}
//服务器回复信息代码
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == (char)13)
{
if (ru.Connected)
{
try
{
listBox1.Items.Add("我说:" + textBox1.Text);
textBox1.Text = "";
stw.WriteLine(textBox1.Text);
stw.Flush();
}
catch
{ }
}
else
{
MessageBox.Show("没有建立连接");
}
}
}
}
客户端代码:public partial class Form1 : Form
{
TcpListener tcplisten;
Socket so;
NetworkStream netw;
StreamReader str;
StreamWriter stw;
public Form1()
{ InitializeComponent();
}
//连接按钮
private void button1_Click(object sender, EventArgs e)
{
so = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
so.Connect(IPAddress.Parse(textBox1.Text),34567);
if (so.Connected)
{
netw = new NetworkStream(so);
str = new StreamReader(netw);
stw = new StreamWriter(netw);
while(so.Connected)
{
try
{ string tem = str.ReadLine();
if (tem.Length != 0)
{
listBox1.Items.Add("他说:" + tem);
}
}
catch
{ }
}
}
else
{
MessageBox.Show("服务器没有开启");
}
}
//断开连接
private void button2_Click(object sender, EventArgs e)
{
so.Close();
}
//发送信息
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == (char)13)
{
if (so.Connected)
{
try
{
listBox1.Items.Add("我说:" + textBox1.Text);
stw.WriteLine(textBox1.Text);
stw.Flush();
textBox1.Text = "";
}
catch
{
}
}
else
{
MessageBox.Show("没有连接");
}
}
}
}
服务端代码:
public partial class Form1 : Form
{
TcpListener tcplisten;
Socket so;
NetworkStream netw;
StreamReader str;
StreamWriter stw;
IPEndPoint ipp;
Socket ru;
public Form1()
{
InitializeComponent();
}
//启动服务器代码
private void button1_Click(object sender, EventArgs e)
{
ipp = new IPEndPoint(IPAddress.Any,34567);
so = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
so.Bind(ipp);
so.Listen(0);
ru = so.Accept();
netw = new NetworkStream(ru);
str = new StreamReader(netw);
stw = new StreamWriter(netw);
while(ru.Connected)
{
try
{
string tem = str.ReadLine();
if (tem.Length != 0)
{
listBox1.Items.Add("他说:" + tem);
}
}
catch
{
}
}
}
//断开服务器代码
private void button2_Click(object sender, EventArgs e)
{
so.Close();
}
//服务器回复信息代码
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == (char)13)
{
if (ru.Connected)
{
try
{
listBox1.Items.Add("我说:" + textBox1.Text);
textBox1.Text = "";
stw.WriteLine(textBox1.Text);
stw.Flush();
}
catch
{ }
}
else
{
MessageBox.Show("没有建立连接");
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货